diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h index 379fc14056..75469ed1f0 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h @@ -61,9 +61,9 @@ static inline void nrLDPC_cnProc_BG2_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBu // Offset to each bit within a group in terms of 32 Byte uint32_t bitOffsetInGroup; - __m512i zmm0, min, sgn, zeros,maxLLR; + __m512i zmm0, min, sgn, zeros; zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); +// maxLLR = _mm512_set1_epi8((char)127); __m512i* p_cnProcBufResBit; const __m512i* p_ones = (__m512i*) ones512_epi8; @@ -95,8 +95,8 @@ static inline void nrLDPC_cnProc_BG2_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBu // Set of results pointer to correct BN address p_cnProcBufResBit = p_cnProcBufRes + (j*bitOffsetInGroup); - __m512i *pj0 = &p_cnProcBuf[lut_idxCnProcG3[j][0]/2]; - __m512i *pj1 = &p_cnProcBuf[lut_idxCnProcG3[j][1]/2]; + __m512i *pj0 = &p_cnProcBuf[(lut_idxCnProcG3[j][0]/2)]; + __m512i *pj1 = &p_cnProcBuf[(lut_idxCnProcG3[j][1]/2)]; // Loop over CNs for (i=0; iAVX512 / +/*---------------------------------------------------------------------- +| cn processing files -->AVX512 /----------------------------------------------------------------------*/ //BG1------------------------------------------------------------------- #ifdef __AVX512BW__ -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z104_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R23_AVX512.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R89_AVX512.h" +//BG2------------------------------------------------------------------- +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R15_AVX512.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R13_AVX512.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R23_AVX512.h" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z2_R13_AVX512.c" - -//BG2------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z104_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c" - -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z3_R15_AVX512.c" -#include "nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z2_R15_AVX512.c" #else - /*----------------------------------------------------------------------/ - / cn Processing files -->AVX2 / +/*---------------------------------------------------------------------- +| cn Processing files -->AVX2 /----------------------------------------------------------------------*/ //BG1------------------------------------------------------------------ -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z112_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z104_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z13_R13_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z12_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z10_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z2_R13_AVX2.c" - +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R23_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R89_AVX2.h" //BG2 -------------------------------------------------------------------- -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R15_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R23_AVX2.h" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z104_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c" - -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z10_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z5_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z4_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z3_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z2_R15_AVX2.c" #endif -//Bn Processing files -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c" -#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c" +/*---------------------------------------------------------------------- +| bn Processing files -->AVX2 +/----------------------------------------------------------------------*/ -///#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c" -//#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c" +//bnProcPc------------------------------------------------------------- +//BG1------------------------------------------------------------------ +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R23_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R89_AVX2.h" +//BG2 -------------------------------------------------------------------- +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R15_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R23_AVX2.h" + +//bnProc---------------------------------------------------------------- +//BG1------------------------------------------------------------------- +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R23_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R89_AVX2.h" +//BG2 -------------------------------------------------------------------- +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R15_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h" +#include "nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R23_AVX2.h" @@ -353,6 +134,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP { uint16_t Z = p_decParams->Z; uint8_t BG = p_decParams->BG; + uint8_t R = p_decParams->R; //Decoding rate: Format 15,13,... for code rates 1/5, 1/3,... */ uint8_t numMaxIter = p_decParams->numMaxIter; e_nrLDPC_outMode outMode = p_decParams->outMode; // int8_t* cnProcBuf= p_procBuf->cnProcBuf; @@ -420,1004 +202,77 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #endif if (BG==1) { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z13_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); #else - nrLDPC_cnProc_BG1_Z12_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: + case 89: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z11_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } } //end if else { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } case 15: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z15_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z13_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z12_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } - }//end of else + }//end of else #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->cnProc); #endif @@ -1451,120 +306,58 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #ifdef NR_LDPC_PROFILER_DETAIL start_meas(&p_profiler->bnProcPc); #endif - if(BG==1){ - switch (Z) +//nrLDPC_bnProcPc(p_lut, p_procBuf, Z); + + if (BG==1) + { + switch (R) + { + case 13: { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 23: + { + nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 89: + { + nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; } } - else{ - switch (Z) + } //end if + else + { + switch (R) + { + case 15: { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; } + case 13: + + { + nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + case 23: + + { + nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + } - + }//end of else + + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProcPc); #endif @@ -1578,6 +371,56 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP start_meas(&p_profiler->bnProc); #endif nrLDPC_bnProc(p_lut, p_procBuf, Z); + +/* +if (BG==1) + { + switch (R) + { + case 13: + { + nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 23: + { + nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 89: + { + nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + } + } //end if + else + { + switch (R) + { + case 15: + { + nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 13: + + { + nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + case 23: + + { + nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + + } + }//end of else +*/ #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProc); #endif @@ -1624,1004 +467,76 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #endif if (BG==1) { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z13_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z12_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: + case 89: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z11_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } } //end if else { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } case 15: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z15_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z13_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z12_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } - }//end of else + }//end of else #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->cnProc); #endif @@ -2654,120 +569,57 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #ifdef NR_LDPC_PROFILER_DETAIL start_meas(&p_profiler->bnProcPc); #endif - if(BG==1){ - switch (Z) +//nrLDPC_bnProcPc(p_lut, p_procBuf, Z); + if (BG==1) + { + switch (R) + { + case 13: { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 23: + { + nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 89: + { + nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; } } - else{ - switch (Z) + } //end if + else + { + switch (R) + { + case 15: { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; } + case 13: + + { + nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + case 23: + + { + nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + } - + }//end of else + + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProcPc); #endif @@ -2780,6 +632,58 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP start_meas(&p_profiler->bnProc); #endif nrLDPC_bnProc(p_lut, p_procBuf, Z); +/* +if (BG==1) + { + switch (R) + { + case 13: + { + nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 23: + { + nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 89: + { + nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + } + } //end if + else + { + switch (R) + { + case 15: + { + nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 13: + + { + nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + case 23: + + { + nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + + } + }//end of else +*/ + + + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProc); #endif @@ -2839,1005 +743,77 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #endif if (BG==1) { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z384_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z384_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z352_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z352_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z320_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z320_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z288_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z288_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z256_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z256_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z240_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z240_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z224_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z224_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z208_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z208_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z192_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z192_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z176_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z176_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z144_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z144_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z128_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z128_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z120_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z120_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z112_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z112_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z104_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z104_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z96_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z96_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z88_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z88_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z80_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z80_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z72_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z72_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z64_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z64_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z60_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z60_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z56_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z56_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z52_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z52_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z48_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z48_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z44_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z44_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z40_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z40_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z36_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z36_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z32_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z32_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z30_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z30_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z28_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z28_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z26_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z26_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z24_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z24_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z22_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z22_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z20_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z20_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z18_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z18_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z16_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z16_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 15: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z15_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z15_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z14_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z14_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z13_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z13_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z12_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + //nrLDPC_cnProc_BG1_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); #else - nrLDPC_cnProc_BG1_Z12_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: + case 89: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z11_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_R89_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG1_Z11_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG1_R89_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z10_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z10_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z9_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z9_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z8_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z8_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z7_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z7_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z6_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z6_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z5_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z5_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z4_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z4_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z3_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z3_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_Z2_R13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG1_Z2_R13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } } //end if else { - switch (Z) + switch (R) { - case 384: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z384_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z384_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 352: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z352_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z352_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 320: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z320_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z320_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 288: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z288_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z288_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 256: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z256_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z256_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 240: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z240_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z240_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 224: - { - - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z224_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z224_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 208: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z208_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z208_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 192: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z192_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z192_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 176: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 160: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z176_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z176_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 144: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z144_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z144_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 128: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z128_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z128_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 120: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z120_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z120_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 112: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z112_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z112_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - - case 104: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z104_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z104_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 96: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z96_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z96_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 88: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z88_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z88_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 80: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z80_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z80_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 72: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z72_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z72_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 64: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z64_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z64_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 60: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z60_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z60_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 56: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z56_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z56_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 52: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z52_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z52_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 48: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z48_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z48_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 44: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z44_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z44_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 40: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z40_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z40_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 36: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z36_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z36_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 32: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z32_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z32_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 30: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z30_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z30_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 28: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z28_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z28_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 26: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z26_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z26_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 24: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z24_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z24_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 22: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z22_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z22_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 20: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z20_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z20_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 18: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z18_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z18_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 16: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z16_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z16_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } case 15: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z15_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R15_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z15_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R15_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } - case 14: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z14_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z14_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } + } case 13: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z13_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R13_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z13_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R13_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 12: + case 23: { #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z12_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG2_R23_AVX512(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); #else - nrLDPC_cnProc_BG2_Z12_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif + nrLDPC_cnProc_BG2_R23_AVX2(p_procBuf->cnProcBuf, p_procBuf->cnProcBufRes, Z); + #endif break; - } + } - case 11: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z11_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z11_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 10: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z10_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z10_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 9: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z9_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z9_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 8: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z8_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z8_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 7: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z7_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z7_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 6: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z6_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z6_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 5: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z5_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z5_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 4: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z4_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z4_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - - case 3: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z3_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z3_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } - case 2: - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_Z2_R15_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #else - nrLDPC_cnProc_BG2_Z2_R15_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - #endif - break; - } } - }//end of else - + }//end of else #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->cnProc); #endif @@ -3870,7 +846,57 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP #ifdef NR_LDPC_PROFILER_DETAIL start_meas(&p_profiler->bnProcPc); #endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); + //nrLDPC_bnProcPc(p_lut, p_procBuf, Z); + + if (BG==1) + { + switch (R) + { + case 13: + { + nrLDPC_bnProcPc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 23: + { + nrLDPC_bnProcPc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 89: + { + nrLDPC_bnProcPc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + } + } //end if + else + { + switch (R) + { + case 15: + { + nrLDPC_bnProcPc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + case 13: + + { + nrLDPC_bnProcPc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + case 23: + + { + nrLDPC_bnProcPc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, p_procBuf->llrProcBuf, Z); + break; + } + + + } + }//end of else + + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProcPc); #endif @@ -3886,120 +912,58 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP start_meas(&p_profiler->bnProc); #endif - if(BG==1){ +nrLDPC_bnProc(p_lut, p_procBuf, Z); - switch (Z) +/* +if (BG==1) + { + switch (R) + { + case 13: { - case 384: - { - nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 48: - { - nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 32: - { - nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProc_BG1_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 23: + { + nrLDPC_bnProc_BG1_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + case 89: + { + nrLDPC_bnProc_BG1_R89_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; } } - else{ - switch (Z) + } //end if + else + { + switch (R) + { + case 15: { - case 384: - { - nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - case 256: - { - nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 192: - { - nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 128: - { - nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 96: - { - nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 64: - { - nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 48: - { - nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - - case 32: - { - nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(p_procBuf->bnProcBuf,p_procBuf->bnProcBufRes, p_procBuf->llrRes , p_procBuf->llrProcBuf ); - break; - } - default : - { - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - break; - } - + nrLDPC_bnProc_BG2_R15_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; } + case 13: + + { + nrLDPC_bnProc_BG2_R13_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + case 23: + + { + nrLDPC_bnProc_BG2_R23_AVX2(p_procBuf->bnProcBuf, p_procBuf->bnProcBufRes,p_procBuf->llrRes, Z); + break; + } + + } - + } +*/ + #ifdef NR_LDPC_PROFILER_DETAIL stop_meas(&p_profiler->bnProc); @@ -4089,4 +1053,3 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP - diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c.full b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c.full deleted file mode 100644 index 34bfdc2fb3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c.full +++ /dev/null @@ -1,534 +0,0 @@ - -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/*!\file nrLDPC_decoder.c - * \brief Defines the LDPC decoder - * \author Sebastian Wagner (TCL Communications) Email: - * \date 30-09-2019 - * \version 2.0 - * \note - * \warning - */ - - -#include -#include -#include "nrLDPCdecoder_defs.h" -#include "nrLDPC_types.h" -#include "nrLDPC_init.h" -#include "nrLDPC_mPass.h" -#include "nrLDPC_cnProc.h" -#include "nrLDPC_bnProc.h" - - -#define NR_LDPC_ENABLE_PARITY_CHECK -#define NR_LDPC_PROFILER_DETAIL - -#ifdef NR_LDPC_DEBUG_MODE -#include "nrLDPC_tools/nrLDPC_debug.h" -#endif - -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); - -int32_t nrLDPC_decod(t_nrLDPC_dec_params* p_decParams, int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, t_nrLDPC_time_stats* p_profiler) -{ - uint32_t numLLR; - uint32_t numIter = 0; - t_nrLDPC_lut lut; - t_nrLDPC_lut* p_lut = &lut; - - //printf("p_procBuf->cnProcBuf = %p\n", p_procBuf->cnProcBuf); - - // Initialize decoder core(s) with correct LUTs - numLLR = nrLDPC_init(p_decParams, p_lut); - - // Launch LDPC decoder core for one segment - numIter = nrLDPC_decoder_core(p_llr, p_out, p_procBuf, numLLR, p_lut, p_decParams, p_profiler); - - return numIter; -} - -/** - \brief Performs LDPC decoding of one code block - \param p_llr Input LLRs - \param p_out Output vector - \param numLLR Number of LLRs - \param p_lut Pointer to decoder LUTs - \param p_decParams LDPC decoder parameters - \param p_profiler LDPC profiler statistics -*/ -static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler) -{ - uint16_t Z = p_decParams->Z; - uint8_t BG = p_decParams->BG; - uint8_t numMaxIter = p_decParams->numMaxIter; - e_nrLDPC_outMode outMode = p_decParams->outMode; - - // Minimum number of iterations is 1 - // 0 iterations means hard-decision on input LLRs - uint32_t i = 1; - // Initialize with parity check fail != 0 - int32_t pcRes = 1; - int8_t* p_llrOut; - - if (outMode == nrLDPC_outMode_LLRINT8) - { - p_llrOut = p_out; - } - else - { - // Use LLR processing buffer as temporary output buffer - p_llrOut = p_procBuf->llrProcBuf; - // Clear llrProcBuf - memset(p_llrOut,0, NR_LDPC_MAX_NUM_LLR*sizeof(int8_t)); - } - - - // Initialization -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2llrProcBuf); -#endif - nrLDPC_llr2llrProcBuf(p_lut, p_llr, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2llrProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_PROC, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2CnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z); - } - else - { - nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2CnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // First iteration - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - -nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_LLR_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_initBuffer2File(nrLDPC_buffers_BN_PROC_RES); - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check not necessary here since it will fail - // because first 2 cols/BNs in BG are punctured and cannot be - // estimated after only one iteration - - // First iteration finished - - while ( (i < (numMaxIter-1)) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); - -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // Last iteration - if ( (i < numMaxIter) && (pcRes != 0) ) - { - // Increase iteration counter - i++; - - // CN processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProc); -#endif - if (BG == 1) - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG1_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG1(p_lut, p_procBuf, Z); - #endif - } - else - { - #ifdef __AVX512BW__ - nrLDPC_cnProc_BG2_AVX512(p_lut, p_procBuf, Z); - #else - nrLDPC_cnProc_BG2(p_lut, p_procBuf, Z); - #endif - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC_RES, p_procBuf); -#endif - - // Send CN results back to BNs -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cn2bnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_cn2bnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cn2bnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC, p_procBuf); -#endif - - // BN Processing -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProcPc); -#endif - nrLDPC_bnProcPc(p_lut, p_procBuf, Z); - - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProcPc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_LLR_RES, p_procBuf); -#endif - - // If parity check not enabled, no need to send the BN proc results - // back to CNs -#ifdef NR_LDPC_ENABLE_PARITY_CHECK -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bnProc); -#endif - nrLDPC_bnProc(p_lut, p_procBuf, Z); - - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bnProc); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_BN_PROC_RES, p_procBuf); -#endif - - // BN results to CN processing buffer -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->bn2cnProcBuf); -#endif - if (BG == 1) - { - nrLDPC_bn2cnProcBuf_BG1(p_lut, p_procBuf, Z); - } - else - { - nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->bn2cnProcBuf); -#endif - -#ifdef NR_LDPC_DEBUG_MODE - nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); -#endif - - // Parity Check -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->cnProcPc); -#endif - if (BG == 1) - { - pcRes = nrLDPC_cnProcPc_BG1(p_lut, p_procBuf, Z); - } - else - { - pcRes = nrLDPC_cnProcPc_BG2(p_lut, p_procBuf, Z); - } -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->cnProcPc); -#endif -#endif - } - - // If maximum number of iterations reached an PC still fails increase number of iterations - // Thus, i > numMaxIter indicates that PC has failed - -#ifdef NR_LDPC_ENABLE_PARITY_CHECK - if (pcRes != 0) - { - i++; - } -#endif - - // Assign results from processing buffer to output -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llrRes2llrOut); -#endif - nrLDPC_llrRes2llrOut(p_lut, p_llrOut, p_procBuf, Z, BG); -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llrRes2llrOut); -#endif - - // Hard-decision -#ifdef NR_LDPC_PROFILER_DETAIL - start_meas(&p_profiler->llr2bit); -#endif - if (outMode == nrLDPC_outMode_BIT) - { - nrLDPC_llr2bitPacked(p_out, p_llrOut, numLLR); - } - else if (outMode == nrLDPC_outMode_BITINT8) - { - nrLDPC_llr2bit(p_out, p_llrOut, numLLR); - } - -#ifdef NR_LDPC_PROFILER_DETAIL - stop_meas(&p_profiler->llr2bit); -#endif - - return i; -} - - - - diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h index 00841b2784..f2373c6341 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_mPass.h @@ -1026,7 +1026,7 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf // CN group with 3 BNs bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; - #pragma omp simd +// #pragma omp simd for (j=0;j<2; j++) { p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; @@ -1041,7 +1041,7 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<3; j++) { p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; - #pragma omp simd + // #pragma omp simd for (i=0; i #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) + +void nrLDPC_bnProcPc_BG1_generator_AVX2(int R) { const char *ratestr[3]={"13","23","89"}; @@ -18,14 +16,14 @@ void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); +// fprintf(fd,"#include \n"); +// fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_bnProcPc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z, ratestr[R]); + fprintf(fd,"static inline void nrLDPC_bnProcPc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; const uint32_t* lut_startAddrBnGroups; const uint16_t* lut_startAddrBnGroupsLlr; @@ -50,15 +48,10 @@ void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; } else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} -/* - const uint8_t* lut_numBnInBnGroups; - const uint32_t* lut_startAddrBnGroups; - const uint16_t* lut_startAddrBnGroupsLlr; -*/ // Number of BNs in Groups - uint32_t M; +// uint32_t M; //uint32_t M32rem; - // uint32_t i,j; + //uint32_t i,j; uint32_t k; // Offset to each bit within a group in terms of 32 Byte uint32_t cnOffsetInGroup; @@ -72,6 +65,7 @@ void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m128i* p_llrProcBuf;\n"); fprintf(fd," __m256i* p_llrProcBuf256; \n"); fprintf(fd," __m256i* p_llrRes; \n"); + fprintf(fd," uint32_t M ;\n"); @@ -92,7 +86,7 @@ fprintf(fd, "// Process group with 1 CNs \n"); // idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] ); fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); @@ -101,7 +95,7 @@ fprintf(fd, "// Process group with 1 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; @@ -156,7 +150,7 @@ fprintf(fd, "// Process group with 2 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; @@ -213,7 +207,7 @@ fprintf(fd, "// Process group with 3 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; @@ -270,7 +264,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; @@ -326,7 +320,7 @@ fprintf(fd, "// Process group with 5 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; @@ -383,7 +377,7 @@ fprintf(fd, "// Process group with 6 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; @@ -439,7 +433,7 @@ fprintf(fd, "// Process group with 7 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; @@ -496,7 +490,7 @@ fprintf(fd, "// Process group with 8 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; @@ -553,7 +547,7 @@ fprintf(fd, "// Process group with 9 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; @@ -610,7 +604,7 @@ fprintf(fd, "// Process group with 10 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; @@ -668,7 +662,7 @@ fprintf(fd, "// Process group with 11 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; @@ -723,7 +717,7 @@ fprintf(fd, "// Process group with 12 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; @@ -779,7 +773,7 @@ fprintf(fd, "// Process group with 13 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; @@ -836,7 +830,7 @@ fprintf(fd, "// Process group with 14 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; @@ -892,7 +886,7 @@ fprintf(fd, "// Process group with 15 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; @@ -949,7 +943,7 @@ fprintf(fd, "// Process group with 16 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; @@ -1005,7 +999,7 @@ fprintf(fd, "// Process group with 17 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; @@ -1061,7 +1055,7 @@ fprintf(fd, "// Process group with 18 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; @@ -1116,7 +1110,7 @@ fprintf(fd, "// Process group with 19 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; @@ -1172,7 +1166,7 @@ fprintf(fd, "// Process group with 20 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; @@ -1232,7 +1226,7 @@ fprintf(fd, "// Process group with 21 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; @@ -1287,7 +1281,7 @@ fprintf(fd, "// Process group with 22 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; @@ -1343,7 +1337,7 @@ fprintf(fd, "// Process group with <23 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; @@ -1400,7 +1394,7 @@ fprintf(fd, "// Process group with 24 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; @@ -1456,7 +1450,7 @@ fprintf(fd, "// Process group with 25 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; @@ -1513,7 +1507,7 @@ fprintf(fd, "// Process group with 26 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; @@ -1569,7 +1563,7 @@ fprintf(fd, "// Process group with 27 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; @@ -1625,7 +1619,7 @@ fprintf(fd, "// Process group with 28 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; @@ -1680,7 +1674,7 @@ fprintf(fd, "// Process group with 29 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; @@ -1736,7 +1730,7 @@ fprintf(fd, "// Process group with 30 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) + +void nrLDPC_bnProcPc_BG2_generator_AVX2(int R) { const char *ratestr[3]={"15","13","23"}; @@ -18,43 +16,43 @@ void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); - - //fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); +// fprintf(fd,"#include \n"); + //fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_bnProcPc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) {\n",Z,ratestr[R]); + fprintf(fd,"static inline void nrLDPC_bnProcPc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; const uint32_t* lut_startAddrBnGroups; const uint16_t* lut_startAddrBnGroupsLlr; - //BG1 - if (R==0) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; + if (R==0) { + + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R15; + } - else if (R==1) { - lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; + else if (R==1){ + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R13; } else if (R==2) { + lut_numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; lut_startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG2_R23; } - - else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} // Number of BNs in Groups - uint32_t M; +// uint32_t M; //uint32_t M32rem; - // uint32_t i,j; + //uint32_t i,j; uint32_t k; // Offset to each bit within a group in terms of 32 Byte uint32_t cnOffsetInGroup; @@ -68,6 +66,7 @@ void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m128i* p_llrProcBuf;\n"); fprintf(fd," __m256i* p_llrProcBuf256; \n"); fprintf(fd," __m256i* p_llrRes; \n"); + fprintf(fd," uint32_t M ;\n"); @@ -88,7 +87,7 @@ fprintf(fd, "// Process group with 1 CNs \n"); // idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[0]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] ); fprintf(fd," p_bnProcBuf = (__m128i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); @@ -97,7 +96,7 @@ fprintf(fd, "// Process group with 1 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>4; @@ -152,7 +151,7 @@ fprintf(fd, "// Process group with 2 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>4; @@ -209,7 +208,7 @@ fprintf(fd, "// Process group with 3 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>4; @@ -266,7 +265,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>4; @@ -322,7 +321,7 @@ fprintf(fd, "// Process group with 5 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>4; @@ -379,7 +378,7 @@ fprintf(fd, "// Process group with 6 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>4; @@ -435,7 +434,7 @@ fprintf(fd, "// Process group with 7 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>4; @@ -492,7 +491,7 @@ fprintf(fd, "// Process group with 8 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>4; @@ -549,7 +548,7 @@ fprintf(fd, "// Process group with 9 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>4; @@ -606,7 +605,7 @@ fprintf(fd, "// Process group with 10 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>4; @@ -664,7 +663,7 @@ fprintf(fd, "// Process group with 11 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>4; @@ -719,7 +718,7 @@ fprintf(fd, "// Process group with 12 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>4; @@ -775,7 +774,7 @@ fprintf(fd, "// Process group with 13 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>4; @@ -832,7 +831,7 @@ fprintf(fd, "// Process group with 14 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>4; @@ -888,7 +887,7 @@ fprintf(fd, "// Process group with 15 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>4; @@ -945,7 +944,7 @@ fprintf(fd, "// Process group with 16 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>4; @@ -1001,7 +1000,7 @@ fprintf(fd, "// Process group with 17 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>4; @@ -1057,7 +1056,7 @@ fprintf(fd, "// Process group with 18 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>4; @@ -1112,7 +1111,7 @@ fprintf(fd, "// Process group with 19 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>4; @@ -1168,7 +1167,7 @@ fprintf(fd, "// Process group with 20 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>4; @@ -1228,7 +1227,7 @@ fprintf(fd, "// Process group with 21 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>4; @@ -1283,7 +1282,7 @@ fprintf(fd, "// Process group with 22 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>4; @@ -1339,7 +1338,7 @@ fprintf(fd, "// Process group with <23 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>4; @@ -1396,7 +1395,7 @@ fprintf(fd, "// Process group with 24 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>4; @@ -1452,7 +1451,7 @@ fprintf(fd, "// Process group with 25 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>4; @@ -1509,7 +1508,7 @@ fprintf(fd, "// Process group with 26 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>4; @@ -1565,7 +1564,7 @@ fprintf(fd, "// Process group with 27 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>4; @@ -1621,7 +1620,7 @@ fprintf(fd, "// Process group with 28 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>4; @@ -1676,7 +1675,7 @@ fprintf(fd, "// Process group with 29 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>4; @@ -1732,7 +1731,7 @@ fprintf(fd, "// Process group with 30 CNs \n"); fprintf(fd," p_llrProcBuf = (__m128i*) &llrProcBuf [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0,j=0;i<%d;i++,j+=2) {\n",M); + fprintf(fd," for (int i=0,j=0;i #include #include "../../nrLDPCdecoder_defs.h" #include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" -#include "../../nrLDPC_cnProc.h" -#include "../../nrLDPC_init.h" +//#include "../../nrLDPC_bnProc.h" +//#include "../../nrLDPC_cnProc.h" +//#include "../../nrLDPC_init.h" -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) + +void nrLDPC_bnProc_BG1_generator_AVX2(int R) { const char *ratestr[3]={"13","23","89"}; @@ -18,15 +18,16 @@ void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + //fprintf(fd,"#include \n"); + //fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); + fprintf(fd,"static inline void nrLDPC_bnProc_BG1_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n", ratestr[R]); + const uint8_t* lut_numBnInBnGroups; const uint32_t* lut_startAddrBnGroups; const uint16_t* lut_startAddrBnGroupsLlr; @@ -53,7 +54,7 @@ void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - uint32_t M; + //uint32_t M; //uint32_t M32rem; // uint32_t i; uint32_t k; @@ -67,6 +68,7 @@ void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m256i* p_bnProcBufRes; \n"); fprintf(fd," __m256i* p_llrRes; \n"); fprintf(fd," __m256i* p_res; \n"); + fprintf(fd," uint32_t M, i; \n"); @@ -83,8 +85,9 @@ fprintf(fd, "// Process group with 2 CNs \n"); // If elements in group move to next address idxBnGroup++; - // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; + // Number of groups of 32 BNs or parallel processing + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); + // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; @@ -100,7 +103,7 @@ fprintf(fd, "// Process group with 2 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; @@ -141,7 +144,7 @@ fprintf(fd, "// Process group with 3 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; @@ -180,7 +183,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; @@ -219,7 +222,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; @@ -260,7 +263,7 @@ fprintf(fd, "// Process group with 6 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; @@ -300,7 +303,7 @@ fprintf(fd, "// Process group with 7 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; @@ -340,7 +343,7 @@ fprintf(fd, "// Process group with 8 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; @@ -379,7 +382,7 @@ fprintf(fd, "// Process group with 9 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; @@ -418,7 +421,7 @@ fprintf(fd, "// Process group with 10 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; @@ -456,7 +459,7 @@ fprintf(fd, "// Process group with 11 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; @@ -494,7 +497,7 @@ fprintf(fd, "// Process group with 12 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; @@ -534,7 +537,7 @@ fprintf(fd, "// Process group with 13 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; @@ -575,7 +578,7 @@ fprintf(fd, "// Process group with 14 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; @@ -615,7 +618,7 @@ fprintf(fd, "// Process group with 15 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; @@ -656,7 +659,7 @@ fprintf(fd, "// Process group with 16 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; @@ -696,7 +699,7 @@ fprintf(fd, "// Process group with 17 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; @@ -736,7 +739,7 @@ fprintf(fd, "// Process group with 18 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; @@ -775,7 +778,7 @@ fprintf(fd, "// Process group with 19 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; @@ -815,7 +818,7 @@ fprintf(fd, "// Process group with 20 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; @@ -859,7 +862,7 @@ fprintf(fd, "// Process group with 21 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; @@ -897,7 +900,7 @@ fprintf(fd, "// Process group with 22 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; @@ -937,7 +940,7 @@ fprintf(fd, "// Process group with <23 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; @@ -978,7 +981,7 @@ fprintf(fd, "// Process group with 24 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; @@ -1018,7 +1021,7 @@ fprintf(fd, "// Process group with 25 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; @@ -1059,7 +1062,7 @@ fprintf(fd, "// Process group with 26 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; @@ -1099,7 +1102,7 @@ fprintf(fd, "// Process group with 27 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; @@ -1139,7 +1142,7 @@ fprintf(fd, "// Process group with 28 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; @@ -1177,7 +1180,7 @@ fprintf(fd, "// Process group with 29 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] );; // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; @@ -1216,7 +1219,7 @@ fprintf(fd, "// Process group with 30 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i +#include +#include "../../nrLDPCdecoder_defs.h" +#include "../../nrLDPC_types.h" +#include "../../nrLDPC_bnProc.h" +#include "../../nrLDPC_cnProc.h" +#include "../../nrLDPC_init.h" + +void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd,"void nrLDPC_bnProc_BG1_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); + const uint8_t* lut_numBnInBnGroups; + const uint32_t* lut_startAddrBnGroups; + const uint16_t* lut_startAddrBnGroupsLlr; + if (R==0) { + + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; + + } + else if (R==1){ + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; + } + else if (R==2) { + + lut_numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; + lut_startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; + lut_startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; + } + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + //uint32_t M32rem; + // uint32_t i; + uint32_t k; + // Offset to each bit within a group in terms of 32 Byte + uint32_t cnOffsetInGroup; + uint8_t idxBnGroup = 0; + + + + fprintf(fd," __m256i* p_bnProcBuf; \n"); + fprintf(fd," __m256i* p_bnProcBufRes; \n"); + fprintf(fd," __m256i* p_llrRes; \n"); + fprintf(fd," __m256i* p_res; \n"); + + + +// ===================================================================== + // Process group with 1 CN + // Already done in bnProcBufPc + + // ===================================================================== + +fprintf(fd, "// Process group with 2 CNs \n"); + + if (lut_numBnInBnGroups[1] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[1]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<2; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + + + + } + + // ===================================================================== + + +fprintf(fd, "// Process group with 3 CNs \n"); + + + + if (lut_numBnInBnGroups[2] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[2]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + for (k=0; k<3; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 4 CNs \n"); + + + + if (lut_numBnInBnGroups[3] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[3]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + for (k=0; k<4; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + } + } + + + // ===================================================================== + + + fprintf(fd, "// Process group with 5 CNs \n"); + + + + if (lut_numBnInBnGroups[4] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[4]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<5; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 6 CNs \n"); + + // Process group with 6 CNs + + if (lut_numBnInBnGroups[5] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[5]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<6; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 7 CNs \n"); + + // Process group with 7 CNs + + if (lut_numBnInBnGroups[6] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[6]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<7; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 8 CNs \n"); + + // Process group with 8 CNs + + if (lut_numBnInBnGroups[7] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[7]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<8; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + + +fprintf(fd, "// Process group with 9 CNs \n"); + + // Process group with 9 CNs + + if (lut_numBnInBnGroups[8] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[8]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<9; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + +fprintf(fd, "// Process group with 10 CNs \n"); + + // Process group with 10 CNs + + if (lut_numBnInBnGroups[9] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[9]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<10; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + +fprintf(fd, "// Process group with 11 CNs \n"); + + if (lut_numBnInBnGroups[10] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[10]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<11; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + // ===================================================================== + + + +fprintf(fd, "// Process group with 12 CNs \n"); + + + if (lut_numBnInBnGroups[11] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[11]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<12; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + + + +fprintf(fd, "// Process group with 13 CNs \n"); + + + + if (lut_numBnInBnGroups[12] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[12]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<1; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 14 CNs \n"); + + + + if (lut_numBnInBnGroups[13] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[13]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<14; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 15 CNs \n"); + + + + if (lut_numBnInBnGroups[14] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[14]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<15; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 16 CNs \n"); + + + + if (lut_numBnInBnGroups[15] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[15]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<16; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + // Process group with 17 CNs + +fprintf(fd, "// Process group with 17 CNs \n"); + + // Process group with 17 CNs + + if (lut_numBnInBnGroups[16] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[16]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<17; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 18 CNs \n"); + + // Process group with 8 CNs + + if (lut_numBnInBnGroups[17] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[17]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<18; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + + +fprintf(fd, "// Process group with 19 CNs \n"); + + + + if (lut_numBnInBnGroups[18] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[18]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<19; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 20 CNs \n"); + + + + if (lut_numBnInBnGroups[19] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[19]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<20; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + + + // ===================================================================== + +fprintf(fd, "// Process group with 21 CNs \n"); + + + + + + if (lut_numBnInBnGroups[20] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[20]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<21; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + // ===================================================================== + + + +fprintf(fd, "// Process group with 22 CNs \n"); + + + if (lut_numBnInBnGroups[21] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[21]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<22; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + + + +fprintf(fd, "// Process group with <23 CNs \n"); + + + + if (lut_numBnInBnGroups[22] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[22]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<23; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 24 CNs \n"); + + // Process group with 4 CNs + + if (lut_numBnInBnGroups[23] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[23]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<24; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 25 CNs \n"); + + + + if (lut_numBnInBnGroups[24] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[24]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<25; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + + // ===================================================================== + + +fprintf(fd, "// Process group with 26 CNs \n"); + + + + if (lut_numBnInBnGroups[25] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[25]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<26; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 27 CNs \n"); + + // Process group with 17 CNs + + if (lut_numBnInBnGroups[26] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[26]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<27; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + + +fprintf(fd, "// Process group with 28 CNs \n"); + + // Process group with 8 CNs + + if (lut_numBnInBnGroups[27] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[27]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<28; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + // ===================================================================== + +fprintf(fd, "// Process group with 29 CNs \n"); + + // Process group with 9 CNs + + if (lut_numBnInBnGroups[28] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[28]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<29; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + + // ===================================================================== + +fprintf(fd, "// Process group with 30 CNs \n"); + + // Process group with 20 CNs + + if (lut_numBnInBnGroups[29] > 0) + { + // If elements in group move to next address + idxBnGroup++; + + // Number of groups of 32 BNs for parallel processing + M = (lut_numBnInBnGroups[29]*Z + 31)>>5; + + // Set the offset to each CN within a group in terms of 16 Byte + cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; + + // Set pointers to start of group 2 + fprintf(fd," p_bnProcBuf = (__m256i*) &bnProcBuf [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + fprintf(fd," p_bnProcBufRes = (__m256i*) &bnProcBufRes [%d];\n",lut_startAddrBnGroups[idxBnGroup]); + + // Loop over CNs + for (k=0; k<30; k++) + { + fprintf(fd," p_res = &p_bnProcBufRes[%d];\n", k*cnOffsetInGroup); + fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); + + // Loop over BNs + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); + fprintf(fd," p_res++;\n"); + fprintf(fd," p_llrRes++;\n"); + + fprintf(fd,"}\n"); + + } + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_bnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c index d36aa8e21b..670bb4d13e 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/bnProc_gen_BG2_avx2.c @@ -6,7 +6,7 @@ #include "../../nrLDPC_cnProc.h" #include "../../nrLDPC_init.h" -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) +void nrLDPC_bnProc_BG2_generator_AVX2(int R) { const char *ratestr[3]={"15","13","23"}; @@ -16,14 +16,14 @@ void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} fprintf(fd,"#include \n"); fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_bnProc_BG2_Z%d_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) {\n",Z, ratestr[R]); + fprintf(fd,"void nrLDPC_bnProc_BG2_R%s_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) {\n",ratestr[R]); const uint8_t* lut_numBnInBnGroups; const uint32_t* lut_startAddrBnGroups; const uint16_t* lut_startAddrBnGroupsLlr; @@ -50,7 +50,7 @@ void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - uint32_t M; + //uint32_t M; //uint32_t M32rem; // uint32_t i; uint32_t k; @@ -64,6 +64,7 @@ void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m256i* p_bnProcBufRes; \n"); fprintf(fd," __m256i* p_llrRes; \n"); fprintf(fd," __m256i* p_res; \n"); + fprintf(fd," uint32_t M, i;\n"); @@ -81,7 +82,7 @@ fprintf(fd, "// Process group with 2 CNs \n"); idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[1]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[1] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[1]*NR_LDPC_ZMAX)>>5; @@ -97,7 +98,8 @@ fprintf(fd, "// Process group with 2 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5;\n",lut_numBnInBnGroups[1] ); fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); fprintf(fd," p_res++;\n"); fprintf(fd," p_llrRes++;\n"); @@ -123,7 +125,7 @@ fprintf(fd, "// Process group with 3 CNs \n"); idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[2]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[2] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[2]*NR_LDPC_ZMAX)>>5; @@ -138,7 +140,8 @@ fprintf(fd, "// Process group with 3 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5;\n",lut_numBnInBnGroups[2] ); fprintf(fd," *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[%d + i]);\n",k*cnOffsetInGroup); fprintf(fd," p_res++;\n"); fprintf(fd," p_llrRes++;\n"); @@ -162,7 +165,7 @@ fprintf(fd, "// Process group with 4 CNs \n"); idxBnGroup++; // Number of groups of 32 BNs for parallel processing - M = (lut_numBnInBnGroups[3]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[3] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[3]*NR_LDPC_ZMAX)>>5; @@ -177,7 +180,8 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[4] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[4]*NR_LDPC_ZMAX)>>5; @@ -216,7 +220,8 @@ fprintf(fd, "// Process group with 4 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[5] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[5]*NR_LDPC_ZMAX)>>5; @@ -257,7 +262,8 @@ fprintf(fd, "// Process group with 6 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[6] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[6]*NR_LDPC_ZMAX)>>5; @@ -297,7 +303,8 @@ fprintf(fd, "// Process group with 7 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[7] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[7]*NR_LDPC_ZMAX)>>5; @@ -337,7 +344,8 @@ fprintf(fd, "// Process group with 8 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[8] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[8]*NR_LDPC_ZMAX)>>5; @@ -376,7 +384,8 @@ fprintf(fd, "// Process group with 9 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[9] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[9]*NR_LDPC_ZMAX)>>5; @@ -415,7 +424,8 @@ fprintf(fd, "// Process group with 10 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[10] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[10]*NR_LDPC_ZMAX)>>5; @@ -453,7 +463,8 @@ fprintf(fd, "// Process group with 11 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[11] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[11]*NR_LDPC_ZMAX)>>5; @@ -491,7 +502,8 @@ fprintf(fd, "// Process group with 12 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[12] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[12]*NR_LDPC_ZMAX)>>5; @@ -531,7 +543,8 @@ fprintf(fd, "// Process group with 13 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[13] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[13]*NR_LDPC_ZMAX)>>5; @@ -572,7 +585,8 @@ fprintf(fd, "// Process group with 14 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[14] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[14]*NR_LDPC_ZMAX)>>5; @@ -612,7 +626,8 @@ fprintf(fd, "// Process group with 15 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[15] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[15]*NR_LDPC_ZMAX)>>5; @@ -653,7 +668,8 @@ fprintf(fd, "// Process group with 16 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[16] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[16]*NR_LDPC_ZMAX)>>5; @@ -693,7 +709,8 @@ fprintf(fd, "// Process group with 17 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[17] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[17]*NR_LDPC_ZMAX)>>5; @@ -733,7 +750,8 @@ fprintf(fd, "// Process group with 18 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[18] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[18]*NR_LDPC_ZMAX)>>5; @@ -772,7 +790,8 @@ fprintf(fd, "// Process group with 19 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[19] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[19]*NR_LDPC_ZMAX)>>5; @@ -812,7 +831,8 @@ fprintf(fd, "// Process group with 20 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[20] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[20]*NR_LDPC_ZMAX)>>5; @@ -856,7 +876,8 @@ fprintf(fd, "// Process group with 21 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[21] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[21]*NR_LDPC_ZMAX)>>5; @@ -894,7 +915,8 @@ fprintf(fd, "// Process group with 22 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[22] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[22]*NR_LDPC_ZMAX)>>5; @@ -934,7 +956,8 @@ fprintf(fd, "// Process group with 23 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[23] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[23]*NR_LDPC_ZMAX)>>5; @@ -975,7 +998,8 @@ fprintf(fd, "// Process group with 24 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + // Number of groups of 32 BNs for parallel processing; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[24] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[24]*NR_LDPC_ZMAX)>>5; @@ -1015,7 +1039,8 @@ fprintf(fd, "// Process group with 25 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[25] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[25]*NR_LDPC_ZMAX)>>5; @@ -1056,7 +1081,8 @@ fprintf(fd, "// Process group with 26 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[26] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[26]*NR_LDPC_ZMAX)>>5; @@ -1096,7 +1122,8 @@ fprintf(fd, "// Process group with 27 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[27] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[27]*NR_LDPC_ZMAX)>>5; @@ -1136,7 +1163,7 @@ fprintf(fd, "// Process group with 28 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[28] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[28]*NR_LDPC_ZMAX)>>5; @@ -1174,7 +1201,8 @@ fprintf(fd, "// Process group with 29 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numBnInBnGroups[29] ); // Set the offset to each CN within a group in terms of 16 Byte cnOffsetInGroup = (lut_numBnInBnGroups[29]*NR_LDPC_ZMAX)>>5; @@ -1213,7 +1241,7 @@ fprintf(fd, "// Process group with 30 CNs \n"); fprintf(fd," p_llrRes = (__m256i*) &llrRes [%d];\n",lut_startAddrBnGroupsLlr[idxBnGroup]); // Loop over BNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i -#include -#define NB_Z 51 -void nrLDPC_bnProcPc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProcPc_BG2_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_bnProc_BG2_generator_AVX2(uint16_t,int); +#include +#include +#define NB_R 3 +void nrLDPC_bnProc_BG1_generator_AVX2(int); +void nrLDPC_bnProc_BG2_generator_AVX2(int); +void nrLDPC_bnProcPc_BG1_generator_AVX2(int); +void nrLDPC_bnProcPc_BG2_generator_AVX2(int); int main() { - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; - - for(int i=0; i #include -#include #include "../../nrLDPCdecoder_defs.h" -#include "../../nrLDPC_types.h" -#include "../../nrLDPC_bnProc.h" - -void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) +void nrLDPC_cnProc_BG1_generator_AVX2(int R) { const char *ratestr[3]={"13","23","89"}; if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} -// system("mkdir -p ldpc_gen_files/avx2"); + // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} fprintf(fd,"#include \n"); fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + + fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; @@ -32,11 +30,13 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + //__m256i* p_cnProcBuf; //__m256i* p_cnProcBufRes; // Number of CNs in Groups - uint32_t M; + //uint32_t M; uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 32 Byte @@ -65,11 +65,13 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); + fprintf(fd," uint32_t M;\n"); + if (lut_numCnInCnGroups[0] > 0) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>5; @@ -90,7 +92,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // for (i=0; i>5)+lut_idxCnProcG3[j][0]); @@ -115,32 +117,6 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); // p_cnProcBufResBit++; fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)); - - // Abs and sign of 32 CNs (first BN) - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][0]+1); - // sgn = _mm256_sign_epi8(ones, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); - // min = _mm256_abs_epi8(ymm0); - fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - fprintf(fd," }\n"); } } @@ -155,7 +131,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>5; @@ -175,7 +151,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG4[j][0]); @@ -220,7 +196,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>5; @@ -240,7 +216,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG5[j][0]); @@ -285,7 +261,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>5; @@ -305,7 +281,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG6[j][0]); @@ -353,7 +329,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>5; @@ -373,7 +349,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG7[j][0]); @@ -422,7 +398,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>5; @@ -442,7 +418,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG8[j][0]); @@ -492,8 +468,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[6]*Z + 31)>>5; - + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[6] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>5; @@ -512,7 +487,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG9[j][0]); @@ -562,7 +537,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[7]*Z + 31)>>5; + fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[7] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>5; @@ -582,7 +557,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG10[j][0]); @@ -635,7 +610,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[8]*Z + 31)>>5; + fprintf(fd, " M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[8] ); // Set the offset to each bit within a group in terms of 32 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>5; @@ -655,7 +630,7 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) // Loop over CNs // for (i=0; i>5)+lut_idxCnProcG19[j][0]); @@ -690,3 +665,4 @@ void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t Z,int R) fprintf(fd,"}\n"); fclose(fd); }//end of the function nrLDPC_cnProc_BG1 + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c index 76db309f2f..8669289212 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_BG2_avx2.c @@ -5,7 +5,7 @@ #include "../../nrLDPC_bnProc.h" -void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) +void nrLDPC_cnProc_BG2_generator_AVX2(int R) { const char *ratestr[3]={"15","13","23"}; @@ -15,13 +15,13 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // system("mkdir -p ldpc_gen_files/avx2"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z%d_R%s_AVX2.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R%s_AVX2.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} fprintf(fd,"#include \n"); fprintf(fd,"#include \n"); - fprintf(fd,"void nrLDPC_cnProc_BG2_Z%d_R%s_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; @@ -33,7 +33,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // Number of CNs in Groups - uint32_t M; + //uint32_t M; uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 32 byte @@ -54,12 +54,14 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd," __m256i ymm0, min, sgn,ones,maxLLR;\n"); fprintf(fd," ones = _mm256_set1_epi8((char)1);\n"); fprintf(fd," maxLLR = _mm256_set1_epi8((char)127);\n"); + fprintf(fd," uint32_t M;\n"); + if (lut_numCnInCnGroups[0] > 0) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[0]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[0] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>5; @@ -69,7 +71,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) for (j=0; j<3; j++) { - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG3[j][0]); @@ -102,24 +104,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd," sgn = _mm256_sign_epi8(ones, ymm0);\n"); // min = _mm256_abs_epi8(ymm0); fprintf(fd," min = _mm256_abs_epi8(ymm0);\n"); - - // 32 CNs of second BN - // ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," ymm0 = ((__m256i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>5)+lut_idxCnProcG3[j][1]+1); - - // min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - fprintf(fd," min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0));\n"); - - // sgn = _mm256_sign_epi8(sgn, ymm0); - fprintf(fd," sgn = _mm256_sign_epi8(sgn, ymm0);\n"); - - // Store result - // min = _mm256_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm256_min_epu8(min, maxLLR);\n"); - // *p_cnProcBufResBit = _mm256_sign_epi8(min, sgn); - // p_cnProcBufResBit++; - fprintf(fd," ((__m256i*)cnProcBufRes)[%d+i] = _mm256_sign_epi8(min, sgn);\n",(lut_startAddrCnGroups[0]>>5)+(j*bitOffsetInGroup)+1); - + fprintf(fd," }\n"); } } @@ -135,7 +120,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[1]*Z + 31)>>5; + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>5; @@ -147,7 +132,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // Loop over CNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG4[j][0]); @@ -194,8 +179,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[2]*Z + 31)>>5; - + fprintf(fd," M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[2] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>5; @@ -204,7 +188,8 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) for (j=0; j<5; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG5[j][0]); @@ -248,7 +233,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[3]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[3] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>5; @@ -261,7 +246,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // Loop over CNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG6[j][0]); @@ -313,7 +298,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[4]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[4] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>5; @@ -324,7 +309,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Loop over CNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG8[j][0]); @@ -375,7 +360,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) { // Number of groups of 32 CNs for parallel processing // Ceil for values not divisible by 32 - M = (lut_numCnInCnGroups[5]*Z + 31)>>5; + fprintf(fd, "M = (%d*Z + 31)>>5;\n",lut_numCnInCnGroups[5] ); // Set the offset to each bit within a group in terms of 32 byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>5; @@ -387,7 +372,7 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) // Loop over CNs - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>5)+lut_idxCnProcG10[j][0]); @@ -423,3 +408,4 @@ void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t Z,int R) fprintf(fd,"}\n"); fclose(fd); }//end of the function nrLDPC_cnProc_BG2 + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 index 5e123291d1..1b4ace6f8f 100755 Binary files a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 and b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/cnProc_gen_avx2 differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c index 959051f92c..3086439a9e 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c @@ -1,21 +1,20 @@ + #include #include -#define NB_Z 51 -void nrLDPC_cnProc_BG1_generator_AVX2(uint16_t,int); -void nrLDPC_cnProc_BG2_generator_AVX2(uint16_t,int); - +#define NB_R 3 +void nrLDPC_cnProc_BG1_generator_AVX2(int); +void nrLDPC_cnProc_BG2_generator_AVX2(int); int main() { - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; + int R[NB_R]={0,1,2}; + for(int i=0; i #include #include "../../nrLDPCdecoder_defs.h" -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +void nrLDPC_cnProc_BG1_generator_AVX512(int R) { const char *ratestr[3]={"13","23","89"}; @@ -13,18 +14,18 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + // fprintf(fd,"#include \n"); +// fprintf(fd,"#include \n"); fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; @@ -34,14 +35,22 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} - - uint32_t M; + + uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 64 Byte uint32_t bitOffsetInGroup; + fprintf(fd," uint32_t M, i;\n"); + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); + + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); + + // ===================================================================== // Process group with 3 BNs @@ -53,16 +62,13 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; - - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - if (lut_numCnInCnGroups[0] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; @@ -72,54 +78,34 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) for (j=0; j<3; j++) { - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); + fprintf(fd," for (i=0;i>6)+lut_idxCnProcG3[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // for (k=1; k<2; k++) + //{ + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + // } // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + // min = _mm512_min_epu8(min, *maxLLR); // 128 in epi8 is -127 fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); - - // Abs and sign of 64 CNs (first BN) - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - fprintf(fd," sgn = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][0]/2)+1); - - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); - - // 32 CNs of second BN - // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+(lut_idxCnProcG3[j][1]/2)+1); - - // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - - // sgn = _mm512_sign_epi8(sgn, zmm0); - fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); - - // Store result - // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 - fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)+1); - fprintf(fd," }\n"); } + } // ===================================================================== @@ -132,10 +118,10 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; - + //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; // Loop over every BN for (j=0; j<4; j++) @@ -143,13 +129,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -160,7 +145,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -187,23 +172,23 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; // Loop over every BN for (j=0; j<5; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>6)+lut_idxCnProcG5[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -214,7 +199,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -240,23 +225,24 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; // Loop over every BN for (j=0; j<6; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (i=0;i>6)+lut_idxCnProcG6[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -267,7 +253,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -295,10 +281,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; // Loop over every BN @@ -307,13 +294,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); - // sgn = _mm512_sign_epi816(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0= ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -324,7 +310,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -353,10 +339,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); // Set the offset to each bit within a group in terms of 64 Byte - bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; // Loop over every BN @@ -365,13 +352,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -382,7 +368,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -395,8 +381,10 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) } } - // ===================================================================== + + // ===================================================================== // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); // Offset is 2*384/32 = 12 const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, @@ -406,18 +394,16 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) {0,24,48,72,96,120,144,168}}; - - if (lut_numCnInCnGroups[6] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; - // Set pointers to start of group // Loop over every BN for (j=0; j<9; j++) @@ -425,13 +411,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -442,7 +427,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -450,11 +435,16 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); - fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); - fprintf(fd," }\n"); + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); } } + + + + + // ===================================================================== // Process group with 10 BNs fprintf(fd,"//Process group with 10 BNs\n"); @@ -469,12 +459,13 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; - - + + // Loop over every BN for (j=0; j<10; j++) @@ -482,13 +473,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -499,7 +489,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -533,11 +523,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; - + // Loop over every BN for (j=0; j<19; j++) @@ -545,13 +536,12 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over CNs // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); - // sgn = _mm512_sign_epi8(ones, zmm0); - // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // Loop over BNs @@ -562,7 +552,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); - // sgn = _mm512_sign_epi8(sgn, zmm0); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); } @@ -581,3 +571,5 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 new file mode 100644 index 0000000000..462f196d1d --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_BG1_avx512.save1 @@ -0,0 +1,603 @@ + +#include +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R%s_AVX512.h",ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"static inline void nrLDPC_cnProc_BG1_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) {\n",ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + + uint32_t i,j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + fprintf(fd," uint32_t M, i;\n"); + fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); + fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); + fprintf(fd," __m512i* p_cnProcBufResBit;\n"); + fprintf(fd," __m512i* p_cnProcBufRes;\n"); + fprintf(fd," __m512i* p_cnProcBuf;\n"); + + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR, ones;\n"); + + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[0] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[0]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[0]); + + // Loop over every BN + + for (j=0; j<3; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[1]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[1]); + + // Loop over every BN + for (j=0; j<4; j++) + { + // Loop over CNs + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + // { + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[2]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[2]); + + // Loop over every BN + + for (j=0; j<5; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[3]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[3]); + + // Loop over every BN + + for (j=0; j<6; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[4]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[4]); + + // Loop over every BN + + for (j=0; j<7; j++) + { + // Loop over CNs +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + // { + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[5]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[5]); + + // Loop over every BN + + for (j=0; j<8; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + // { + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd, "M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[6] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[6]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[6]); + + // Loop over every BN + + for (j=0; j<9; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + //M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[7] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[7]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[7]); + + + // Loop over every BN + + for (j=0; j<10; j++) + { +fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + // { + fprintf(fd," for (i=0;i 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + // M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + fprintf(fd, " M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[8] ); + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups[8]*NR_LDPC_ZMAX)>>6; + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf[%d];\n", lut_startAddrCnGroups[8]); + + // Loop over every BN + + for (j=0; j<19; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d ;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (i=0;i #include "../../nrLDPCdecoder_defs.h" -void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) +void nrLDPC_cnProc_BG2_generator_AVX512(int R) { const char *ratestr[3]={"15","13","23"}; @@ -13,19 +13,19 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) // system("mkdir -p ../ldpc_gen_files"); char fname[50]; - sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG2_Z%d_R%s_AVX512.c",Z,ratestr[R]); + sprintf(fname,"../ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG2_R%s_AVX512.h",ratestr[R]); FILE *fd=fopen(fname,"w"); if (fd == NULL) {printf("Cannot create \n");abort();} - fprintf(fd,"#include \n"); - fprintf(fd,"#include \n"); + //fprintf(fd,"#include \n"); +// fprintf(fd,"#include \n"); fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); - fprintf(fd,"void nrLDPC_cnProc_BG2_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); - + + fprintf(fd,"static inline void nrLDPC_cnProc_BG2_R%s_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) {\n",ratestr[R]); const uint8_t* lut_numCnInCnGroups; const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG2; @@ -36,13 +36,16 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) // Number of CNs in Groups - uint32_t M; + //uint32_t M; uint32_t j; uint32_t k; // Offset to each bit within a group in terms of 64 Byte uint32_t bitOffsetInGroup; - + fprintf(fd," uint32_t M;\n"); + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); // ===================================================================== // Process group with 3 BNs fprintf(fd,"//Process group with 3 BNs\n"); @@ -52,15 +55,11 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) const uint8_t lut_idxCnProcG3[3][2] = {{72,144}, {0,144}, {0,72}}; - fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); - fprintf(fd," zeros = _mm512_setzero_si512();\n"); - fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); - if (lut_numCnInCnGroups[0] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX)>>6; @@ -72,13 +71,13 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { - fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG3[j][0]/2); + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); // sgn = _mm512_sign_epi8(ones, zmm0); // min = _mm512_abs_epi8(zmm0); - fprintf(fd," min = _mm512_abs_epi8(sgn);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); // 32 CNs of second BN // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; @@ -134,7 +133,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[1] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX)>>6; @@ -142,7 +141,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) // Loop over every BN for (j=0; j<4; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG4[j][0]/2); @@ -187,7 +186,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[2] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX)>>6; @@ -197,7 +196,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) for (j=0; j<5; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG5[j][0]/2); @@ -241,7 +240,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[3] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX)>>6; @@ -251,7 +250,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) for (j=0; j<6; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG6[j][0]/2); @@ -297,7 +296,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[4] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX)>>6; @@ -307,7 +306,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) for (j=0; j<8; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG8[j][0]/2); @@ -353,7 +352,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 - M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + fprintf(fd," M = (%d*Z + 63)>>6;\n",lut_numCnInCnGroups[5] ); // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX)>>6; @@ -363,7 +362,7 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) for (j=0; j<10; j++) { - fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," for (int i=0;i>6)+lut_idxCnProcG10[j][0]/2); @@ -404,3 +403,4 @@ void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t Z,int R) + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 index de3b923c1f..9f1d553a1c 100755 Binary files a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 and b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/cnProc_gen_avx512 differ diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c index d9be56dde1..d3a3d16cd5 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c @@ -1,23 +1,20 @@ #include #include -#define NB_Z 51 -void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t,int); -void nrLDPC_cnProc_BG2_generator_AVX512(uint16_t,int); +#define NB_R 3 +void nrLDPC_cnProc_BG1_generator_AVX512(int); +void nrLDPC_cnProc_BG2_generator_AVX512(int); int main() { - uint16_t Z[NB_Z]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}; + int R[NB_R]={0,1,2}; + for(int i=0; i +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf) {\n",Z,ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + uint32_t j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + fprintf(fd," int8_t* cnProcBuf = p_procBuf->cnProcBuf;\n"); + fprintf(fd," int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;\n"); + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + + fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; + + // Loop over every BN + + for (j=0; j<3; j++) + { + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // 32 CNs of second BN + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>6)+lut_idxCnProcG3[j][1]/2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[0]>>6)+(j*bitOffsetInGroup)); + + + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 4 BNs + fprintf(fd,"//Process group with 4 BNs\n"); + // Offset is 5*384/32 = 30 + const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; + + if (lut_numCnInCnGroups[1] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + + // Loop over every BN + for (j=0; j<4; j++) + { + // Loop over CNs + // for (i=0; i>6)+lut_idxCnProcG4[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<3; k++) + { + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>6)+lut_idxCnProcG4[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[1]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 5 BNs + fprintf(fd,"//Process group with 5 BNs\n"); + // Offset is 18*384/32 = 216 + const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, + {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + + + if (lut_numCnInCnGroups[2] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + + // Loop over every BN + + for (j=0; j<5; j++) + { + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<4; k++) + { + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>6)+lut_idxCnProcG5[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[2]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 6 BNs + fprintf(fd,"//Process group with 6 BNs\n"); + // Offset is 8*384/32 = 48 + const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, + {0,96,288,384,480}, {0,96,192,384,480}, + {0,96,192,288,480}, {0,96,192,288,384}}; + + + if (lut_numCnInCnGroups[3] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + + // Loop over every BN + + for (j=0; j<6; j++) + { + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<5; k++) + { + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>6)+lut_idxCnProcG6[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[3]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 7 BNs + fprintf(fd,"//Process group with 7 BNs\n"); + // Offset is 5*384/32 = 30 + const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, + {0,60,180,240,300,360}, {0,60,120,240,300,360}, + {0,60,120,180,300,360}, {0,60,120,180,240,360}, + {0,60,120,180,240,300}}; + + + if (lut_numCnInCnGroups[4] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + + // Loop over every BN + + for (j=0; j<7; j++) + { + // Loop over CNs + // for (i=0; i>6)+lut_idxCnProcG7[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<6; k++) + { + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>6)+lut_idxCnProcG7[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[4]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 8 BNs + fprintf(fd,"//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, + {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, + {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, + {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; + + + + if (lut_numCnInCnGroups[5] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + + // Loop over every BN + + for (j=0; j<8; j++) + { + // Loop over CNs + // for (i=0; i>6)+lut_idxCnProcG8[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<7; k++) + { + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>6)+lut_idxCnProcG8[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[5]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, + {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, + {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, + {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, + {0,24,48,72,96,120,144,168}}; + + + + + if (lut_numCnInCnGroups[6] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group + // Loop over every BN + + for (j=0; j<9; j++) + { + // Loop over CNs + // for (i=0; i>6)+lut_idxCnProcG9[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<8; k++) + { + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>6)+lut_idxCnProcG9[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn, zeros);\n",(lut_startAddrCnGroups[6]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 10 BNs + fprintf(fd,"//Process group with 10 BNs\n"); + // Offset is 1*384/32 = 6 + const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, + {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, + {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, + {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, + {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; + + if (lut_numCnInCnGroups[7] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; + + + // Loop over every BN + + for (j=0; j<10; j++) + { + // Loop over CNs + // for (i=0; i>6)+lut_idxCnProcG10[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<9; k++) + { + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>6)+lut_idxCnProcG10[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min,sgn,zeros);\n",(lut_startAddrCnGroups[7]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 19 BNs + fprintf(fd,"//Process group with 19 BNs\n"); + // Offset is 4*384/32 = 24 + const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; + + + if (lut_numCnInCnGroups[8] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; + + // Loop over every BN + + for (j=0; j<19; j++) + { + // Loop over CNs + // for (i=0; i>6)+lut_idxCnProcG19[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<18; k++) + { + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>6)+lut_idxCnProcG19[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = conditional_negate(min, sgn,zeros);\n",(lut_startAddrCnGroups[8]>>6)+(j*bitOffsetInGroup)); + fprintf(fd," }\n"); + } + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_cnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today new file mode 100644 index 0000000000..a9dab4bf99 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.c.today @@ -0,0 +1,596 @@ + +#include +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + uint32_t j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," __m512i* p_cnProcBufResBit;\n"); + fprintf(fd," __m512i* p_cnProcBuf;\n"); + fprintf(fd," __m512i* p_cnProcBufRes;\n"); + fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); + + + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); + + // Loop over every BN + // Loop over every BN + + + + + for (j=0; j<3; j++) + { + + + // Set of results pointer to correct BN address + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // 32 CNs of second BN + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 4 BNs + fprintf(fd,"//Process group with 4 BNs\n"); + // Offset is 5*384/32 = 30 + const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; + + if (lut_numCnInCnGroups[1] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); + + // Loop over every BN + for (j=0; j<4; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<3; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 5 BNs + fprintf(fd,"//Process group with 5 BNs\n"); + // Offset is 18*384/32 = 216 + const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, + {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + + + if (lut_numCnInCnGroups[2] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); + + // Loop over every BN + + for (j=0; j<5; j++) + { + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<4; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 6 BNs + fprintf(fd,"//Process group with 6 BNs\n"); + // Offset is 8*384/32 = 48 + const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, + {0,96,288,384,480}, {0,96,192,384,480}, + {0,96,192,288,480}, {0,96,192,288,384}}; + + + if (lut_numCnInCnGroups[3] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); + + // Loop over every BN + + for (j=0; j<6; j++) + { + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<5; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 7 BNs + fprintf(fd,"//Process group with 7 BNs\n"); + // Offset is 5*384/32 = 30 + const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, + {0,60,180,240,300,360}, {0,60,120,240,300,360}, + {0,60,120,180,300,360}, {0,60,120,180,240,360}, + {0,60,120,180,240,300}}; + + + if (lut_numCnInCnGroups[4] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); + + // Loop over every BN + + for (j=0; j<7; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<6; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 8 BNs + fprintf(fd,"//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, + {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, + {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, + {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; + + + + if (lut_numCnInCnGroups[5] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); + + // Loop over every BN + + for (j=0; j<8; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<7; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, + {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, + {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, + {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, + {0,24,48,72,96,120,144,168}}; + + + + + if (lut_numCnInCnGroups[6] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); + + // Set pointers to start of group + // Loop over every BN + + for (j=0; j<9; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<8; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 10 BNs + fprintf(fd,"//Process group with 10 BNs\n"); + // Offset is 1*384/32 = 6 + const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, + {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, + {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, + {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, + {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; + + if (lut_numCnInCnGroups[7] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); + + + // Loop over every BN + + for (j=0; j<10; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<9; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 19 BNs + fprintf(fd,"//Process group with 19 BNs\n"); + // Offset is 4*384/32 = 24 + const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; + + + if (lut_numCnInCnGroups[8] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); + + // Loop over every BN + + for (j=0; j<19; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<18; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_cnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native new file mode 100644 index 0000000000..f8de0dc0b7 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.native @@ -0,0 +1,596 @@ + +#include +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + uint32_t j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," __m512i* p_cnProcBufResBit;\n"); + fprintf(fd," __m512i* p_cnProcBuf;\n"); + fprintf(fd," __m512i* p_cnProcBufRes;\n"); + fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); + fprintf(fd," const __m512i* p_maxLLR = (__m512i*) maxLLR512_epi8;\n"); + + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); + + // Loop over every BN + // Loop over every BN + + + + + for (j=0; j<3; j++) + { + + + // Set of results pointer to correct BN address + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // 32 CNs of second BN + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG3[j][1]/2); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 4 BNs + fprintf(fd,"//Process group with 4 BNs\n"); + // Offset is 5*384/32 = 30 + const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; + + if (lut_numCnInCnGroups[1] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); + + // Loop over every BN + for (j=0; j<4; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<3; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG4[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 5 BNs + fprintf(fd,"//Process group with 5 BNs\n"); + // Offset is 18*384/32 = 216 + const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, + {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + + + if (lut_numCnInCnGroups[2] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); + + // Loop over every BN + + for (j=0; j<5; j++) + { + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<4; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG5[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 6 BNs + fprintf(fd,"//Process group with 6 BNs\n"); + // Offset is 8*384/32 = 48 + const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, + {0,96,288,384,480}, {0,96,192,384,480}, + {0,96,192,288,480}, {0,96,192,288,384}}; + + + if (lut_numCnInCnGroups[3] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); + + // Loop over every BN + + for (j=0; j<6; j++) + { + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<5; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG6[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 7 BNs + fprintf(fd,"//Process group with 7 BNs\n"); + // Offset is 5*384/32 = 30 + const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, + {0,60,180,240,300,360}, {0,60,120,240,300,360}, + {0,60,120,180,300,360}, {0,60,120,180,240,360}, + {0,60,120,180,240,300}}; + + + if (lut_numCnInCnGroups[4] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); + + // Loop over every BN + + for (j=0; j<7; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<6; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG7[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 8 BNs + fprintf(fd,"//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, + {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, + {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, + {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; + + + + if (lut_numCnInCnGroups[5] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); + + // Loop over every BN + + for (j=0; j<8; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<7; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG8[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, + {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, + {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, + {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, + {0,24,48,72,96,120,144,168}}; + + + + + if (lut_numCnInCnGroups[6] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); + + // Set pointers to start of group + // Loop over every BN + + for (j=0; j<9; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<8; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG9[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + // ===================================================================== + // Process group with 10 BNs + fprintf(fd,"//Process group with 10 BNs\n"); + // Offset is 1*384/32 = 6 + const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, + {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, + {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, + {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, + {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; + + if (lut_numCnInCnGroups[7] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); + + + // Loop over every BN + + for (j=0; j<10; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<9; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG10[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + + // ===================================================================== + // Process group with 19 BNs + fprintf(fd,"//Process group with 19 BNs\n"); + // Offset is 4*384/32 = 24 + const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; + + + if (lut_numCnInCnGroups[8] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); + + // Loop over every BN + + for (j=0; j<19; j++) + { + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", j*bitOffsetInGroup); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][0]/2); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<18; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",lut_idxCnProcG19[j][k]/2); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, *p_maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + } + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_cnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled new file mode 100644 index 0000000000..96002878a1 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/save/cnProc_gen_BG1_avx512.unrolled @@ -0,0 +1,590 @@ + +#include +#include +#include "../../nrLDPCdecoder_defs.h" + +void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) +{ + const char *ratestr[3]={"13","23","89"}; + + if (R<0 || R>2) {printf("Illegal R %d\n",R); abort();} + + + // system("mkdir -p ../ldpc_gen_files"); + + char fname[50]; + sprintf(fname,"../ldpc_gen_files/nrLDPC_cnProc_BG1_Z%d_R%s_AVX512.c",Z,ratestr[R]); + FILE *fd=fopen(fname,"w"); + if (fd == NULL) {printf("Cannot create \n");abort();} + + fprintf(fd,"#include \n"); + fprintf(fd,"#include \n"); + + + fprintf(fd, "#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a)\n"); + + + fprintf(fd,"void nrLDPC_cnProc_BG1_Z%d_R%s_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) {\n",Z,ratestr[R]); + + const uint8_t* lut_numCnInCnGroups; + const uint32_t* lut_startAddrCnGroups = lut_startAddrCnGroups_BG1; + + if (R==0) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R13; + else if (R==1) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R23; + else if (R==2) lut_numCnInCnGroups = lut_numCnInCnGroups_BG1_R89; + else { printf("aborting, illegal R %d\n",R); fclose(fd);abort();} + + + uint32_t M; + uint32_t j; + uint32_t k; + // Offset to each bit within a group in terms of 64 Byte + uint32_t bitOffsetInGroup; + + + + // ===================================================================== + // Process group with 3 BNs + fprintf(fd,"//Process group with 3 BNs\n"); + // LUT with offsets for bits that need to be processed + // 1. bit proc requires LLRs of 2. and 3. bit, 2.bits of 1. and 3. etc. + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + // Offsets are in units of bitOffsetInGroup (1*384/32)12 + + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; + + + fprintf(fd," __m512i zmm0, min, sgn,zeros,maxLLR;\n"); + fprintf(fd," zeros = _mm512_setzero_si512();\n"); + fprintf(fd," maxLLR = _mm512_set1_epi8((char)127);\n"); + fprintf(fd," __m512i* p_cnProcBufResBit;\n"); + fprintf(fd," __m512i* p_cnProcBuf;\n"); + fprintf(fd," __m512i* p_cnProcBufRes;\n"); + fprintf(fd," const __m512i* p_ones = (__m512i*) ones512_epi8;\n"); + + + + if (lut_numCnInCnGroups[0] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[0]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[0]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[0]); + + // Loop over every BN + // Loop over every BN + + + + +fprintf(fd," for (int j=0;j<3;j++) {\n"); + + + // Set of results pointer to correct BN address + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // 32 CNs of second BN + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG3[j][1]/2)); + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + // ===================================================================== + // Process group with 4 BNs + fprintf(fd,"//Process group with 4 BNs\n"); + // Offset is 5*384/32 = 30 + const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; + + if (lut_numCnInCnGroups[1] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[1]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[1]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[1]); + + // Loop over every BN + //for (j=0; j<4; j++) + // { + + fprintf(fd," for (int j=0;j<4;j++) {\n"); + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<3; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG4[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + // *p_cnProcBufResBit = _mm512_sign_epi8(min, sgn); + // p_cnProcBufResBit++; + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + + // ===================================================================== + // Process group with 5 BNs + fprintf(fd,"//Process group with 5 BNs\n"); + // Offset is 18*384/32 = 216 + const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, + {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + + + if (lut_numCnInCnGroups[2] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[2]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[2]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[2]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<5;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<4; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG5[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + // ===================================================================== + // Process group with 6 BNs + fprintf(fd,"//Process group with 6 BNs\n"); + // Offset is 8*384/32 = 48 + const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, + {0,96,288,384,480}, {0,96,192,384,480}, + {0,96,192,288,480}, {0,96,192,288,384}}; + + + if (lut_numCnInCnGroups[3] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[3]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[3]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[3]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<6;j++) {\n"); + + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<5; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG6[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + + // ===================================================================== + // Process group with 7 BNs + fprintf(fd,"//Process group with 7 BNs\n"); + // Offset is 5*384/32 = 30 + const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, + {0,60,180,240,300,360}, {0,60,120,240,300,360}, + {0,60,120,180,300,360}, {0,60,120,180,240,360}, + {0,60,120,180,240,300}}; + + + if (lut_numCnInCnGroups[4] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[4]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>6; + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[4]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[4]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<7;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0= p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<6; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG7[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + + // ===================================================================== + // Process group with 8 BNs + fprintf(fd,"//Process group with 8 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,112,144,168}, {0,48,72,96,112,144,168}, + {0,24,72,96,112,144,168}, {0,24,48,96,112,144,168}, + {0,24,48,72,112,144,168}, {0,24,48,72,96,144,168}, + {0,24,48,72,96,112,168}, {0,24,48,72,96,112,144}}; + + + + if (lut_numCnInCnGroups[5] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[5]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[5]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[5]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<8;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<7; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG8[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + // ===================================================================== + // Process group with 9 BNs + fprintf(fd,"//Process group with 9 BNs\n"); + // Offset is 2*384/32 = 12 + const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, + {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, + {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, + {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, + {0,24,48,72,96,120,144,168}}; + + + + + if (lut_numCnInCnGroups[6] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[6]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[6]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[6]); + + // Set pointers to start of group + // Loop over every BN + + fprintf(fd," for (int j=0;j<9;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<8; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG9[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + // ===================================================================== + // Process group with 10 BNs + fprintf(fd,"//Process group with 10 BNs\n"); + // Offset is 1*384/32 = 6 + const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, + {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, + {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, + {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, + {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; + + if (lut_numCnInCnGroups[7] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[7]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[7]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[7]); + + + // Loop over every BN + + fprintf(fd," for (int j=0;j<10;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<9; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG10[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + + // ===================================================================== + // Process group with 19 BNs + fprintf(fd,"//Process group with 19 BNs\n"); + // Offset is 4*384/32 = 24 + const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; + + + if (lut_numCnInCnGroups[8] > 0) + { + // Number of groups of 64 CNs for parallel processing + // Ceil for values not divisible by 64 + M = (lut_numCnInCnGroups[8]*Z + 63)>>6; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>6; + + // Set pointers to start of group 3 + fprintf(fd," p_cnProcBuf = (__m512i*) &cnProcBuf [%d];\n", lut_startAddrCnGroups[8]); + fprintf(fd," p_cnProcBufRes = (__m512i*) &cnProcBufRes[%d];\n", lut_startAddrCnGroups[8]); + + // Loop over every BN + + fprintf(fd," for (int j=0;j<11;j++) {\n"); + fprintf(fd," p_cnProcBufResBit = p_cnProcBufRes + %d;\n", (j*bitOffsetInGroup)); + fprintf(fd," for (int i=0;i<%d;i++) {\n",M); + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][0]/2)); + fprintf(fd," sgn = _mm512_xor_si512(*p_ones, zmm0);\n"); + fprintf(fd," min = _mm512_abs_epi8(zmm0);\n"); + + + // Loop over BNs + for (k=1; k<18; k++) + { + fprintf(fd," zmm0 = p_cnProcBuf [%d+i];\n",(lut_idxCnProcG19[j][k]/2)); + + // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); + + // sgn = _mm512_sign_epi8(*p_ones, zmm0); + fprintf(fd," sgn = _mm512_xor_si512(sgn, zmm0);\n"); + } + + // Store result + // min = _mm512_min_epu8(min, maxLLR); // 128 in epi8 is -127 + fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); + + fprintf(fd," *p_cnProcBufResBit = conditional_negate(min, sgn,zeros);\n"); + fprintf(fd," p_cnProcBufResBit++;\n"); + fprintf(fd," }\n"); + fprintf(fd,"}\n"); + } + + fprintf(fd,"}\n"); + fclose(fd); +}//end of the function nrLDPC_cnProc_BG1 + + + + diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h similarity index 86% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h index b5b4329183..d6bdfb4571 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z2_R13_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_R13_AVX2.h @@ -1,549 +1,558 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { +static inline void nrLDPC_bnProc_BG1_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { __m256i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m256i* p_llrRes; __m256i* p_res; + uint32_t M, i; // Process group with 2 CNs // Process group with 3 CNs // Process group with 4 CNs + M = (1*Z + 31)>>5; p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [3456]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [3456]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [3456]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [4224]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [4224]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [3840]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [9984]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [9984]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [5760]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [28032]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [28032]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [9600]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [46464]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [46464]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [12672]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [50688]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [50688]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [13056]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [384]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [384]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [384]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [2688]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [2688]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [1536]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [26880]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [26880]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [9600]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [28416]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [28416]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [9984]; + for (i=0;i -#include -void nrLDPC_bnProc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 17386fca34..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 72f269a3fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index 59f30be553..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 400c04c430..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 6496593bd3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index 0614cf505b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 785d554559..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index d91cb1b44e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index 07ba538e90..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index 78e3f8dc35..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index cc2d9fafd7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index 29ffb5058b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index e44d7cac94..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<17;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index 765ffaf0b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index 436effce12..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index a043cee84d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<26;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 0acb046870..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 941f05c829..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<21;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<28;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 3bedc1da39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 3e1fb14b16..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<23;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index a1a9e7c746..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 95b6662869..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<32;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index d67252e70d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 88b1453acd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<27;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index dab5d50a75..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 82b7429182..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index c1243fe104..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<30;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<40;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 6fbf2f7060..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 54bf723732..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<33;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<44;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 449662b84f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index c4fa11327f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<36;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<48;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index cd0ecff86e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index b0a1d96998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 094471b418..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index b5384c2cd2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 1c664a4a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index ebea97e7a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index c24d31dc62..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index 3d0523df04..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index b69c8bfb2c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index 1c51ee482f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index bbe6ddcb3e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index f74cc89ad7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 94f64d1fad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index 931abd13c8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4b88d79461..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 83032f55a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 649308b2a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index e16be52cea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,978 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [16128]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [16128]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [19584]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [19584]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [44160]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [44160]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [47616]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [47616]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [62976]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [62976]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[360]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[360 + i]); - p_res++; - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [75648]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [75648]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[384]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[384 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[432]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[432 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[480]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[480 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[528]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[528 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [94080]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [94080]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [99072]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [99072]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [109824]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [109824]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[276]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[276 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[288]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[288 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[300]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[300 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[312]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[312 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[324]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[324 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[336]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[336 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[348]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[348 + i]); - p_res++; - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h new file mode 100644 index 0000000000..208b3cedb2 --- /dev/null +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_R13_AVX2.h @@ -0,0 +1,508 @@ +#include +#include +void nrLDPC_bnProc_BG2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { + __m256i* p_bnProcBuf; + __m256i* p_bnProcBufRes; + __m256i* p_llrRes; + __m256i* p_res; + uint32_t M, i; +// Process group with 2 CNs + M = (1*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [6912]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [6912]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); + p_res++; + p_llrRes++; +} + p_res = &p_bnProcBufRes[12]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); + p_res++; + p_llrRes++; +} +// Process group with 3 CNs +// Process group with 4 CNs + M = (2*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [7680]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [7680]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [7296]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [10752]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [10752]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [8064]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [12672]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [12672]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [8448]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [24192]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [24192]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [10368]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [26880]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [26880]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [10752]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [29952]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [29952]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [11136]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [34944]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [34944]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [11520]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [40320]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [40320]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [11904]; + for (i=0;i #include -void nrLDPC_bnProc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { +void nrLDPC_bnProc_BG2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { __m256i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m256i* p_llrRes; __m256i* p_res; + uint32_t M, i; // Process group with 2 CNs // Process group with 3 CNs // Process group with 4 CNs // Process group with 5 CNs + M = (2*Z + 31)>>5; p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { + for (i=0;i>5; p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; p_res = &p_bnProcBufRes[0]; p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { + for (i=0;i +#include +void nrLDPC_bnProc_BG2_R23_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes, uint16_t Z ) { + __m256i* p_bnProcBuf; + __m256i* p_bnProcBufRes; + __m256i* p_llrRes; + __m256i* p_res; + uint32_t M, i; +// Process group with 2 CNs + M = (3*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [1152]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [1152]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [1152]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); + p_res++; + p_llrRes++; +} + p_res = &p_bnProcBufRes[36]; + p_llrRes = (__m256i*) &llrRes [1152]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); + p_res++; + p_llrRes++; +} +// Process group with 3 CNs + M = (5*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [3456]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [3456]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); + p_res++; + p_llrRes++; +} + p_res = &p_bnProcBufRes[60]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); + p_res++; + p_llrRes++; +} + p_res = &p_bnProcBufRes[120]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (i=0;i>5; + *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); + p_res++; + p_llrRes++; +} +// Process group with 4 CNs + M = (3*Z + 31)>>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [9216]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [9216]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [4224]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [13824]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [13824]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [5376]; + for (i=0;i>5; + p_bnProcBuf = (__m256i*) &bnProcBuf [17664]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [17664]; + p_res = &p_bnProcBufRes[0]; + p_llrRes = (__m256i*) &llrRes [6144]; + for (i=0;i -#include -void nrLDPC_bnProc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c deleted file mode 100644 index da7eecd7c9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z10_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index 3613096240..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index ce583e8a49..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 9567913d4c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 3dcd56e4b2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index a1e7eef92d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index c604b9c9fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 3a6d5fad9b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 0a68dcc192..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 5e1b4e5247..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index 301752c898..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2ff4596dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 25d44d65dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index d035375329..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index fe808f0262..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index b80ad2550c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<13;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index bea168af3c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 6a897f6a58..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<14;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<7;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index 1686f075cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index ff3f02c22c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<15;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index 3a824bf742..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 1d251bfd7e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<16;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<8;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index 9c01cb69a0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index c48b6023d6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<18;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<9;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 4b02344ea4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 1ca19efbea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index cb56abe439..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<20;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<10;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index d03e2e943e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 6be4e10dd8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<22;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<11;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index 3e447f3a1a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index 2ac44f6c53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<24;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<12;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 3b645790d4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index a9eb5dbb00..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index a6613ef66c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index d2a7c80bb0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index ae4f4d922f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 3efa774165..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index f61d8ea7d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 6528758122..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index d7a3be2173..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 58457add44..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<4;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<2;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index f9c2093489..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 9d14029acc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index 188b6a94dd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index ac2c167b9a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<5;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 4d5ec0740c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index f4b84e4509..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 83a4a54c13..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<6;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<3;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index ed5464778a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProc/nrLDPC_bnProc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,992 +0,0 @@ -#include -#include -void nrLDPC_bnProc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes ) { - __m256i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m256i* p_llrRes; - __m256i* p_res; -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [14592]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [14592]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [18432]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [18432]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [20736]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [20736]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [23424]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [23424]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [26496]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [26496]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [33408]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [33408]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [37248]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [37248]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [41856]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [41856]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [46848]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [46848]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [52224]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [52224]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [58368]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [58368]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} -// Process group with 23 CNs - p_bnProcBuf = (__m256i*) &bnProcBuf [66816]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [66816]; - p_res = &p_bnProcBufRes[0]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[0 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[12]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[12 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[24]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[24 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[36]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[36 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[48]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[48 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[60]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[60 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[72]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[72 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[84]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[84 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[96]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[96 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[108]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[108 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[120]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[120 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[132]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[132 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[144]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[144 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[156]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[156 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[168]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[168 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[180]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[180 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[192]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[192 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[204]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[204 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[216]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[216 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[228]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[228 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[240]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[240 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[252]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[252 + i]); - p_res++; - p_llrRes++; -} - p_res = &p_bnProcBufRes[264]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0;i<1;i++) { - *p_res = _mm256_subs_epi8(*p_llrRes, p_bnProcBuf[264 + i]); - p_res++; - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h similarity index 97% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h index 3a16eaa82f..44fd2e4141 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z11_R13_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_R13_AVX2.h @@ -1,19 +1,19 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z11_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { +static inline void nrLDPC_bnProcPc_BG1_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) { __m256i ymm0, ymm1, ymmRes0, ymmRes1; __m128i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m128i* p_llrProcBuf; __m256i* p_llrProcBuf256; __m256i* p_llrRes; + uint32_t M ; // Process group with 1 CNs + M = (0*Z + 31)>>5; p_bnProcBuf = (__m128i*) &bnProcBuf [0]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; p_llrProcBuf = (__m128i*) &llrProcBuf [0]; p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [0]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; + p_llrProcBuf = (__m128i*) &llrProcBuf [0]; + p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; + p_llrRes = (__m256i*) &llrRes [0]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [3456]; + p_llrProcBuf = (__m128i*) &llrProcBuf [3456]; + p_llrRes = (__m256i*) &llrRes [3456]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [4224]; + p_llrProcBuf = (__m128i*) &llrProcBuf [3840]; + p_llrRes = (__m256i*) &llrRes [3840]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [9984]; + p_llrProcBuf = (__m128i*) &llrProcBuf [5760]; + p_llrRes = (__m256i*) &llrRes [5760]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; + p_llrProcBuf = (__m128i*) &llrProcBuf [6912]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [28032]; + p_llrProcBuf = (__m128i*) &llrProcBuf [9600]; + p_llrRes = (__m256i*) &llrRes [9600]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [46464]; + p_llrProcBuf = (__m128i*) &llrProcBuf [12672]; + p_llrRes = (__m256i*) &llrRes [12672]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [50688]; + p_llrProcBuf = (__m128i*) &llrProcBuf [13056]; + p_llrRes = (__m256i*) &llrRes [13056]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [0]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; + p_llrProcBuf = (__m128i*) &llrProcBuf [0]; + p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; + p_llrRes = (__m256i*) &llrRes [0]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [384]; + p_llrProcBuf = (__m128i*) &llrProcBuf [384]; + p_llrRes = (__m256i*) &llrRes [384]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [2688]; + p_llrProcBuf = (__m128i*) &llrProcBuf [1536]; + p_llrRes = (__m256i*) &llrRes [1536]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [26880]; + p_llrProcBuf = (__m128i*) &llrProcBuf [9600]; + p_llrRes = (__m256i*) &llrRes [9600]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [28416]; + p_llrProcBuf = (__m128i*) &llrProcBuf [9984]; + p_llrRes = (__m256i*) &llrRes [9984]; + for (int i=0,j=0;i -#include -void nrLDPC_bnProcPc_BG1_Z104_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<137;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c deleted file mode 100644 index 160bce3117..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z10_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z10_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c deleted file mode 100644 index 0e753bfab3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z112_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z112_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<147;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index 673af9a9d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z120_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<158;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 9029ec4945..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z128_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<168;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c deleted file mode 100644 index eb63f40810..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z12_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z12_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c deleted file mode 100644 index 03b80c28e3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z13_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z13_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index 1e0e1bb9b4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z144_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<189;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index f8d5ba2422..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z14_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index c3bf9cd8c4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z15_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<20;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index 54aa60410d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z160_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<210;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index dbd57a29a2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z16_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<21;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index b33f7eff95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z176_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<231;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<17;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index bfacf24f9e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z18_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index cb5e28d03b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z192_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<252;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index 26206a90ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z208_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<273;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<26;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 47a80af761..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z20_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 429e77bb46..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z224_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<294;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<21;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<28;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index 5114d701ea..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z22_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 0075be8dec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z240_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<315;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<23;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index 2a10721f55..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z24_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<32;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 32f7cc2f18..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z256_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<336;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<32;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index ec50dbc7c6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z26_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<35;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 31c6264a07..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z288_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<378;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<27;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index 5f261e18df..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z28_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<37;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 9c40d68946..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z30_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<40;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index ad6d124bae..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z320_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<420;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<30;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<40;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 57401cbf41..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z32_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<42;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index 901bc03cd9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z352_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<462;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<33;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<44;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index 4799b8efbf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z36_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index bccdf09c1e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z384_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<504;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<36;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<48;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index a458247cf1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z3_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index 79d4f4ae71..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z40_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 5e91ecb0c1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z44_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<58;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index 7e7af0c1ce..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z48_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<63;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 06e7bc8467..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z4_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index 6954acb650..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z52_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<69;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index dd4d169cb2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z56_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<74;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index c3943c0003..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z5_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<7;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index cd4c7ff1b9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z60_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<79;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index b9c661f6ca..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z64_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<84;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index c223a8b5b1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z6_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index 0711e1b370..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z72_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index 85384d8d39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z7_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index e7e4c7b6f4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z80_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 4d694f1874..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z88_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<116;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 548b9ab4aa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z8_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index 8db0776e95..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z96_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<126;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index 44b8a15b39..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,749 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z9_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [16128]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [19584]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16896]; - p_llrRes = (__m256i*) &llrRes [16896]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [44160]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20352]; - p_llrRes = (__m256i*) &llrRes [20352]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [47616]; - p_llrProcBuf = (__m128i*) &llrProcBuf [20736]; - p_llrRes = (__m256i*) &llrRes [20736]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [62976]; - p_llrProcBuf = (__m128i*) &llrProcBuf [22272]; - p_llrRes = (__m256i*) &llrRes [22272]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[720 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [75648]; - p_llrProcBuf = (__m128i*) &llrProcBuf [23424]; - p_llrRes = (__m256i*) &llrRes [23424]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[768 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[864 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[960 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[1056 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [94080]; - p_llrProcBuf = (__m128i*) &llrProcBuf [24960]; - p_llrRes = (__m256i*) &llrRes [24960]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs -// Process group with 15 CNs -// Process group with 16 CNs -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs -// Process group with <23 CNs -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [99072]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25344]; - p_llrRes = (__m256i*) &llrRes [25344]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 29 CNs -// Process group with 30 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [109824]; - p_llrProcBuf = (__m128i*) &llrProcBuf [25728]; - p_llrRes = (__m256i*) &llrRes [25728]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[552 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[576 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[600 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[624 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[648 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[672 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[696 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h similarity index 51% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h index e77a0c287f..4ca040e27d 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG1_Z2_R13_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_R13_AVX2.h @@ -1,19 +1,19 @@ -#include -#include -void nrLDPC_bnProcPc_BG1_Z2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { +static inline void nrLDPC_bnProcPc_BG2_R13_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) { __m256i ymm0, ymm1, ymmRes0, ymmRes1; __m128i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m128i* p_llrProcBuf; __m256i* p_llrProcBuf256; __m256i* p_llrRes; + uint32_t M ; // Process group with 1 CNs + M = (0*Z + 31)>>5; p_bnProcBuf = (__m128i*) &bnProcBuf [0]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; p_llrProcBuf = (__m128i*) &llrProcBuf [0]; p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [6912]; + p_llrProcBuf = (__m128i*) &llrProcBuf [6912]; + p_llrRes = (__m256i*) &llrRes [6912]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [7680]; + p_llrProcBuf = (__m128i*) &llrProcBuf [7296]; + p_llrRes = (__m256i*) &llrRes [7296]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [10752]; + p_llrProcBuf = (__m128i*) &llrProcBuf [8064]; + p_llrRes = (__m256i*) &llrRes [8064]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [12672]; + p_llrProcBuf = (__m128i*) &llrProcBuf [8448]; + p_llrRes = (__m256i*) &llrRes [8448]; + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [24192]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { + p_llrProcBuf = (__m128i*) &llrProcBuf [10368]; + p_llrRes = (__m256i*) &llrRes [10368]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [26880]; + p_llrProcBuf = (__m128i*) &llrProcBuf [10752]; + p_llrRes = (__m256i*) &llrRes [10752]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [29952]; + p_llrProcBuf = (__m128i*) &llrProcBuf [11136]; + p_llrRes = (__m256i*) &llrRes [11136]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [34944]; + p_llrProcBuf = (__m128i*) &llrProcBuf [11520]; + p_llrRes = (__m256i*) &llrRes [11520]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [40320]; + p_llrProcBuf = (__m128i*) &llrProcBuf [11904]; + p_llrRes = (__m256i*) &llrRes [11904]; + for (int i=0,j=0;i -#include -void nrLDPC_bnProcPc_BG2_Z104_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { +static inline void nrLDPC_bnProcPc_BG2_R15_AVX2(int8_t* bnProcBuf,int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf, uint16_t Z ) { __m256i ymm0, ymm1, ymmRes0, ymmRes1; __m128i* p_bnProcBuf; __m256i* p_bnProcBufRes; __m128i* p_llrProcBuf; __m256i* p_llrProcBuf256; __m256i* p_llrRes; + uint32_t M ; // Process group with 1 CNs + M = (0*Z + 31)>>5; p_bnProcBuf = (__m128i*) &bnProcBuf [0]; p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; p_llrProcBuf = (__m128i*) &llrProcBuf [0]; p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<124;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [0]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; + p_llrProcBuf = (__m128i*) &llrProcBuf [0]; + p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; + p_llrRes = (__m256i*) &llrRes [0]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [1152]; + p_llrProcBuf = (__m128i*) &llrProcBuf [1152]; + p_llrRes = (__m256i*) &llrRes [1152]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [3456]; + p_llrProcBuf = (__m128i*) &llrProcBuf [2304]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [9216]; + p_llrProcBuf = (__m128i*) &llrProcBuf [4224]; + p_llrRes = (__m256i*) &llrRes [4224]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [13824]; + p_llrProcBuf = (__m128i*) &llrProcBuf [5376]; + p_llrRes = (__m256i*) &llrRes [5376]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; + p_llrProcBuf = (__m128i*) &llrProcBuf [6144]; + p_llrRes = (__m256i*) &llrRes [6144]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [0]; + p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; + p_llrProcBuf = (__m128i*) &llrProcBuf [0]; + p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; + p_llrRes = (__m256i*) &llrRes [0]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [1152]; + p_llrProcBuf = (__m128i*) &llrProcBuf [1152]; + p_llrRes = (__m256i*) &llrRes [1152]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [3456]; + p_llrProcBuf = (__m128i*) &llrProcBuf [2304]; + p_llrRes = (__m256i*) &llrRes [2304]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [9216]; + p_llrProcBuf = (__m128i*) &llrProcBuf [4224]; + p_llrRes = (__m256i*) &llrRes [4224]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [13824]; + p_llrProcBuf = (__m128i*) &llrProcBuf [5376]; + p_llrRes = (__m256i*) &llrRes [5376]; + for (int i=0,j=0;i>5; + p_bnProcBuf = (__m128i*) &bnProcBuf [17664]; + p_llrProcBuf = (__m128i*) &llrProcBuf [6144]; + p_llrRes = (__m256i*) &llrRes [6144]; + for (int i=0,j=0;i -#include -void nrLDPC_bnProcPc_BG2_Z10_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<12;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index d32d9f5a5a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z112_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<133;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index f4abd64e20..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z11_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<14;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 192f387978..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z120_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<143;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 7c87845b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z128_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<152;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index b640cc9b50..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z12_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<15;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index fc400c6368..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z13_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<16;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 8f10c6f9a6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z144_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<171;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 3f6be2d8b3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z14_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<17;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index 18433a0bb9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z15_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<18;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index a707e979a3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z160_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<190;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 2db176ef99..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z16_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<19;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 0a4986e855..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z176_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<209;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index 73ec5b7694..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z18_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<22;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index 57c3a14331..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z192_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<228;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index df3810a159..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z208_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<247;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<13;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index ccabb48171..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z20_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<24;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 3863cc0b78..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z224_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<266;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<14;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<7;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index e63c5fd552..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z22_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<27;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index 6502335168..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z240_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<285;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<15;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index bf727cb7da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z24_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<29;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index 21e3b405ee..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z256_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<304;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<16;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<8;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index aada1582fb..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z26_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<31;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index dbd644f48b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z288_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<342;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<18;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<9;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 465742e608..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z28_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<34;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c deleted file mode 100644 index e93cdfcf11..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z2_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z2_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<3;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 8d060b7c79..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z30_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<36;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index 92268f3d53..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z320_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<380;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<20;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<10;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index bfc4c0b52b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z32_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<38;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index 2c6cc7b6b0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z352_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<418;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<22;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<11;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index ed4a0100a9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z36_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<43;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index a5c0f02b5b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z384_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<456;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<24;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<12;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c deleted file mode 100644 index 43e8bcd7de..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z3_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z3_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<4;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index 24438b13cd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z40_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<48;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index 0f324af960..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z44_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<53;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index 9e88e7b0ed..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z48_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<57;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c deleted file mode 100644 index 12597e8f2f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z4_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z4_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<5;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 6b6566f36e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z52_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<62;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index b1cce64577..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z56_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<67;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c deleted file mode 100644 index 5991558809..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z5_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z5_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<6;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index 9c83e7d431..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z60_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<72;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 9dd53e1642..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z64_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<76;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<4;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<2;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index b7e769a154..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z6_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<8;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index 749b21d603..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z72_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<86;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index ba4a638274..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z7_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<9;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index b60d9c6ad4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z80_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<95;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<5;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 607d88744c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z88_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<105;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index 0aa77ce254..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z8_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<10;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 4239544706..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z96_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<114;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<6;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<3;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index 5c085b51c2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/bnProcPc/nrLDPC_bnProcPc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,757 +0,0 @@ -#include -#include -void nrLDPC_bnProcPc_BG2_Z9_R15_AVX2(int8_t* bnProcBuf, int8_t* bnProcBufRes, int8_t* llrRes , int8_t* llrProcBuf ) { - __m256i ymm0, ymm1, ymmRes0, ymmRes1; - __m128i* p_bnProcBuf; - __m256i* p_bnProcBufRes; - __m128i* p_llrProcBuf; - __m256i* p_llrProcBuf256; - __m256i* p_llrRes; -// Process group with 1 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [0]; - p_bnProcBufRes = (__m256i*) &bnProcBufRes [0]; - p_llrProcBuf = (__m128i*) &llrProcBuf [0]; - p_llrProcBuf256 = (__m256i*) &llrProcBuf [0]; - p_llrRes = (__m256i*) &llrRes [0]; - for (int i=0,j=0;i<11;i++,j+=2) { - p_bnProcBufRes[i] = p_llrProcBuf256[i]; - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j+1]); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm256_adds_epi16(ymm0, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 2 CNs -// Process group with 3 CNs -// Process group with 4 CNs -// Process group with 5 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [14592]; - p_llrProcBuf = (__m128i*) &llrProcBuf [14592]; - p_llrRes = (__m256i*) &llrRes [14592]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 6 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [18432]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15360]; - p_llrRes = (__m256i*) &llrRes [15360]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 7 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [20736]; - p_llrProcBuf = (__m128i*) &llrProcBuf [15744]; - p_llrRes = (__m256i*) &llrRes [15744]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 8 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [23424]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16128]; - p_llrRes = (__m256i*) &llrRes [16128]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 9 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [26496]; - p_llrProcBuf = (__m128i*) &llrProcBuf [16512]; - p_llrRes = (__m256i*) &llrRes [16512]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 10 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [33408]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17280]; - p_llrRes = (__m256i*) &llrRes [17280]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 11 CNs -// Process group with 12 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [37248]; - p_llrProcBuf = (__m128i*) &llrProcBuf [17664]; - p_llrRes = (__m256i*) &llrRes [17664]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 13 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [41856]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18048]; - p_llrRes = (__m256i*) &llrRes [18048]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 14 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [46848]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18432]; - p_llrRes = (__m256i*) &llrRes [18432]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 15 CNs -// Process group with 16 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [52224]; - p_llrProcBuf = (__m128i*) &llrProcBuf [18816]; - p_llrRes = (__m256i*) &llrRes [18816]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 17 CNs -// Process group with 18 CNs -// Process group with 19 CNs -// Process group with 20 CNs -// Process group with 21 CNs -// Process group with 22 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [58368]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19200]; - p_llrRes = (__m256i*) &llrRes [19200]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with <23 CNs - p_bnProcBuf = (__m128i*) &bnProcBuf [66816]; - p_llrProcBuf = (__m128i*) &llrProcBuf [19584]; - p_llrRes = (__m256i*) &llrRes [19584]; - for (int i=0,j=0;i<1;i++,j+=2) { - ymmRes0 = _mm256_cvtepi8_epi16(p_bnProcBuf [j]); - ymmRes1 = _mm256_cvtepi8_epi16(p_bnProcBuf [j +1]); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[24 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[48 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[72 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[96 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[120 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[144 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[168 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[192 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[216 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[240 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[264 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[288 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[312 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[336 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[360 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[384 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[408 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[432 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[456 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[480 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[504 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_bnProcBuf[528 + j +1]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_cvtepi8_epi16(p_llrProcBuf[j]); - ymmRes0 = _mm256_adds_epi16(ymmRes0, ymm0); - ymm1 = _mm256_cvtepi8_epi16(p_llrProcBuf[j +1 ]); - ymmRes1 = _mm256_adds_epi16(ymmRes1, ymm1); - ymm0 = _mm256_packs_epi16(ymmRes0, ymmRes1); - *p_llrRes = _mm256_permute4x64_epi64(ymm0, 0xD8); - p_llrRes++; -} -// Process group with 24 CNs -// Process group with 25 CNs -// Process group with 26 CNs -// Process group with 27 CNs -// Process group with 28 CNs -// Process group with 29 CNs -// Process group with 30 CNs -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z104_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c similarity index 97% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z104_R13_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c index ee97fc62bf..aa171558fd 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z104_R13_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_R13_AVX2.c @@ -1,11 +1,15 @@ #include #include -void nrLDPC_cnProc_BG1_Z104_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG1_Z12_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R13_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG1_Z10_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG1_Z2_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R23_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG1_Z13_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R89_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i +#include +static inline void nrLDPC_cnProc_BG1_R89_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { +//Process group with 3 BNs + __m256i ymm0, min, sgn,ones,maxLLR; + ones = _mm256_set1_epi8((char)1); + maxLLR = _mm256_set1_epi8((char)127); + uint32_t M; + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i -#include -void nrLDPC_cnProc_BG1_Z112_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c deleted file mode 100644 index c923dfd293..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z11_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z11_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c deleted file mode 100644 index f3c06abb67..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z120_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z120_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c deleted file mode 100644 index 3388c1c95b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z128_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z128_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c deleted file mode 100644 index 8cb5cade6e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z144_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z144_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c deleted file mode 100644 index 44ee09d03d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z14_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z14_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c deleted file mode 100644 index ffc71426b7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z15_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z15_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c deleted file mode 100644 index a5248e2c11..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z160_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z160_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c deleted file mode 100644 index 5067a4d568..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z16_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z16_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c deleted file mode 100644 index ae640b1fd4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z176_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z176_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c deleted file mode 100644 index 56cd28a9ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z18_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z18_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c deleted file mode 100644 index e298ade2d5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z192_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z192_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c deleted file mode 100644 index c2f0497934..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z208_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z208_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<117;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<52;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<26;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c deleted file mode 100644 index 75567e0c0b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z20_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z20_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c deleted file mode 100644 index 49fd55bf02..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z224_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z224_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<126;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<56;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c deleted file mode 100644 index a2a5cde850..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z22_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z22_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c deleted file mode 100644 index 1b3cc7c6ad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z240_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z240_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<135;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c deleted file mode 100644 index f719ff19e2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z24_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z24_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c deleted file mode 100644 index 230f9e07a3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z256_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z256_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<144;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<64;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c deleted file mode 100644 index 94a7f0c389..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z26_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z26_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c deleted file mode 100644 index 91066132a4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z288_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z288_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<162;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c deleted file mode 100644 index 568c0096f7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z28_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z28_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c deleted file mode 100644 index 465d36db41..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z30_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z30_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c deleted file mode 100644 index 99f8891c54..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z320_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z320_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c deleted file mode 100644 index 5baaadd512..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z32_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z32_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c deleted file mode 100644 index fb4a93a98e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z352_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z352_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<198;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<88;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<44;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c deleted file mode 100644 index be11649a57..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z36_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z36_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c deleted file mode 100644 index cb67f5031d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z384_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z384_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<216;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<96;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c deleted file mode 100644 index a383a80b03..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z3_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z3_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c deleted file mode 100644 index ce37578a66..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z40_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z40_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c deleted file mode 100644 index 4d7e77ed7b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z44_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z44_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c deleted file mode 100644 index 6ed9fbb101..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z48_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z48_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c deleted file mode 100644 index 863ff40747..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z4_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z4_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c deleted file mode 100644 index dbd111868a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z52_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z52_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c deleted file mode 100644 index 5469b77812..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z56_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z56_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c deleted file mode 100644 index 493706b9ad..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z5_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z5_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c deleted file mode 100644 index b504267826..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z60_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z60_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c deleted file mode 100644 index 8bfb98c9ba..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z64_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z64_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c deleted file mode 100644 index 7156db357e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z6_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z6_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c deleted file mode 100644 index f93ae981f8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z72_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z72_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c deleted file mode 100644 index fe2b974170..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z7_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z7_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c deleted file mode 100644 index 0d8db50071..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z80_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z80_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c deleted file mode 100644 index 7c7ce39c1c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z88_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z88_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c deleted file mode 100644 index 8cbc7c3012..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z8_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z8_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c deleted file mode 100644 index cae1179897..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z96_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z96_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c deleted file mode 100644 index f31cf8b56a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG1_Z9_R13_AVX2.c +++ /dev/null @@ -1,2334 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG1_Z9_R13_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[24+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[12+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[25+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[13+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[12+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[24+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[13+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[25+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[36+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[96+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[156+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[36+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[96+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[156+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[276+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[492+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[708+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1140+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[924+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[276+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[492+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[708+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[924+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1140+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1356+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1452+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1548+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1644+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1836+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1740+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1356+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1452+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1548+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1644+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1740+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1836+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1992+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2112+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2232+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1992+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2112+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2232+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2352+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2376+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2400+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2424+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2448+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2472+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2520+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2496+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2352+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2376+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2400+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2424+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2448+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2464+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2496+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2520+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2544+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2568+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2592+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2616+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2640+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2664+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2688+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2736+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2712+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2544+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2568+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2592+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2616+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2640+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2664+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2688+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2712+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2736+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2760+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2772+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2784+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2796+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2808+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2820+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2832+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2844+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2868+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2856+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2760+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2772+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2784+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2796+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2808+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2820+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2832+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2844+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2856+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2868+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2880+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2928+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2976+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3024+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3072+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3120+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3168+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3264+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3312+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3360+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3408+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3504+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3552+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3600+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3648+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3744+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2880+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2928+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2976+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3024+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3072+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3120+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3168+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3216+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3264+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3312+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3360+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3408+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3504+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3552+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3600+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3648+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[3696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[3744+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z3_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c similarity index 90% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z3_R15_AVX2.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c index 220cff34ed..50c3bc0cb2 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z3_R15_AVX2.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_R13_AVX2.c @@ -1,66 +1,16 @@ #include #include -void nrLDPC_cnProc_BG2_Z3_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R13_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; //Process group with 4 BNs - for (int i=0;i<2;i++) { + M = (8*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG2_Z4_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R13_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } + uint32_t M; //Process group with 4 BNs - for (int i=0;i<3;i++) { + M = (8*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG2_Z104_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R15_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<20;i+=2) { + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; + M = (6*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG2_Z2_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R15_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { + uint32_t M; + M = (6*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i #include -void nrLDPC_cnProc_BG2_Z5_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG2_R23_AVX2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) { //Process group with 3 BNs __m256i ymm0, min, sgn,ones,maxLLR; ones = _mm256_set1_epi8((char)1); maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } + uint32_t M; + int8_t* cnProcBuf = p_procBuf->cnProcBuf; + int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; //Process group with 4 BNs - for (int i=0;i<4;i++) { + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i +#include +static inline void nrLDPC_cnProc_BG2_R23_AVX2(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { +//Process group with 3 BNs + __m256i ymm0, min, sgn,ones,maxLLR; + ones = _mm256_set1_epi8((char)1); + maxLLR = _mm256_set1_epi8((char)127); + uint32_t M; +//Process group with 4 BNs + M = (1*Z + 31)>>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i>5; + for (int i=0;i -#include -void nrLDPC_cnProc_BG2_Z10_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c deleted file mode 100644 index 7ce92630e9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z112_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z112_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<21;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<70;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<70;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<70;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<70;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<32;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c deleted file mode 100644 index c7d863559a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z11_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z11_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c deleted file mode 100644 index 2dfd13bfac..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z120_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z120_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<23;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<75;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<75;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<75;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<75;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<34;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c deleted file mode 100644 index 055e83b970..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z128_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z128_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<24;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<80;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c deleted file mode 100644 index 9a78d5df60..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z12_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z12_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c deleted file mode 100644 index 59c963a8fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z13_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z13_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c deleted file mode 100644 index 66b3733d42..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z144_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z144_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<27;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<41;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c deleted file mode 100644 index 94c1e7cd3c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z14_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z14_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c deleted file mode 100644 index e50fd26998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z15_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z15_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c deleted file mode 100644 index e6472f526c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z160_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z160_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<30;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<100;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<100;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<100;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<100;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c deleted file mode 100644 index 3d05fd089b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z16_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z16_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c deleted file mode 100644 index 0f14028b6d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z176_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z176_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<33;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<110;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<110;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<110;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<110;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c deleted file mode 100644 index 8e44a92165..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z18_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z18_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c deleted file mode 100644 index b56aabf024..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z192_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z192_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<36;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<120;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<120;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<120;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<120;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c deleted file mode 100644 index 0a0ff67520..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z208_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z208_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<39;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<39;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<39;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<130;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<130;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<130;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<130;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<59;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c deleted file mode 100644 index 59c3246689..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z20_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z20_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c deleted file mode 100644 index 13f778a24c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z224_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z224_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<42;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<42;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<42;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<140;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<140;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<140;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<140;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<63;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c deleted file mode 100644 index d6ea777549..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z22_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z22_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c deleted file mode 100644 index e73e53e2c1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z240_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z240_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<45;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<150;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<150;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<150;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<150;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<68;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c deleted file mode 100644 index 94456093a1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z24_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z24_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c deleted file mode 100644 index ca030208df..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z256_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z256_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<48;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<48;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<160;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<160;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<160;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<160;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c deleted file mode 100644 index 204fecce65..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z26_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z26_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c deleted file mode 100644 index ddcdfe2377..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z288_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z288_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<54;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<54;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<180;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<81;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c deleted file mode 100644 index 25581f51f9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z28_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z28_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c deleted file mode 100644 index 4270e115bf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z30_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z30_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<19;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c deleted file mode 100644 index b86af8cc26..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z320_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z320_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<60;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<200;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<200;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<200;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<200;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<90;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c deleted file mode 100644 index b2fbd829b6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z32_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z32_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<20;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c deleted file mode 100644 index e2d692f5a6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z352_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z352_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<66;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<66;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<66;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<220;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<220;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<220;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<220;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<99;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<22;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c deleted file mode 100644 index 8d272ae764..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z36_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z36_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c deleted file mode 100644 index 0130022c02..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z384_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z384_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<72;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<72;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<240;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<240;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<240;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<240;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<108;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<36;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<24;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c deleted file mode 100644 index c5373ed43e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z40_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z40_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c deleted file mode 100644 index f9f1dd05ef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z44_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z44_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<28;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<13;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c deleted file mode 100644 index afc61d740d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z48_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z48_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<30;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c deleted file mode 100644 index 55039f44e9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z52_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z52_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<10;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<33;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c deleted file mode 100644 index 9375f4e297..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z56_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z56_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<11;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<35;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<16;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c deleted file mode 100644 index 4f2a9b8190..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z60_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z60_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<38;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c deleted file mode 100644 index 8d75ac2f70..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z64_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z64_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<12;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<40;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c deleted file mode 100644 index ce0932e069..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z6_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z6_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<4;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c deleted file mode 100644 index d343dedbef..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z72_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z72_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<14;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<14;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<45;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<21;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<7;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c deleted file mode 100644 index dfd5f3a395..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z7_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z7_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c deleted file mode 100644 index 0b7de6d364..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z80_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z80_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<15;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<15;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<50;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<23;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<8;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c deleted file mode 100644 index 236d3af15f..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z88_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z88_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<17;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<17;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<55;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<25;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c deleted file mode 100644 index ddc6a7acb0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z8_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z8_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<5;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c deleted file mode 100644 index 3ee2a5135a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z96_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z96_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<18;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<18;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<60;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<27;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<9;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c deleted file mode 100644 index f076359378..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc/nrLDPC_cnProc_BG2_Z9_R15_AVX2.c +++ /dev/null @@ -1,823 +0,0 @@ -#include -#include -void nrLDPC_cnProc_BG2_Z9_R15_AVX2(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m256i ymm0, min, sgn,ones,maxLLR; - ones = _mm256_set1_epi8((char)1); - maxLLR = _mm256_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[0+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[144+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[72+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[145+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[73+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<2;i+=2) { - ymm0 = ((__m256i*)cnProcBuf)[0+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[72+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[144+i] = _mm256_sign_epi8(min, sgn); - ymm0 = ((__m256i*)cnProcBuf)[1+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[73+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[145+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[216+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[456+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[936+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[696+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<6;i++) { - ymm0 = ((__m256i*)cnProcBuf)[216+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[456+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[696+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[936+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1176+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1284+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1392+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1608+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1500+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<3;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1176+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1284+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1392+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1500+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1608+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1716+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1752+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1788+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1824+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1896+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1860+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1716+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1752+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1788+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1824+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1860+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1896+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1932+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1956+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[1980+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2004+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2028+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2052+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2100+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2076+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[1932+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1956+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[1980+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2004+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2028+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2052+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2076+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2100+i] = _mm256_sign_epi8(min, sgn); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2124+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2148+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2172+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2196+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2220+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2244+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2268+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2292+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2340+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2316+i] = _mm256_sign_epi8(min, sgn); - } - for (int i=0;i<1;i++) { - ymm0 = ((__m256i*)cnProcBuf)[2124+i]; - sgn = _mm256_sign_epi8(ones, ymm0); - min = _mm256_abs_epi8(ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2148+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2172+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2196+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2220+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2244+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2268+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2292+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - ymm0 = ((__m256i*)cnProcBuf)[2316+i]; - min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); - sgn = _mm256_sign_epi8(sgn, ymm0); - min = _mm256_min_epu8(min, maxLLR); - ((__m256i*)cnProcBufRes)[2340+i] = _mm256_sign_epi8(min, sgn); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h similarity index 89% rename from openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_R13_AVX512.c rename to openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h index 2aeb54ea5e..b53bff6d41 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z11_R13_AVX512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/cnProc_avx512/nrLDPC_cnProc_BG1_R13_AVX512.h @@ -1,63 +1,48 @@ -#include -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z11_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R13_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M, i; + __m512i zmm0, min, sgn,zeros,maxLLR, ones; + zeros = _mm512_setzero_si512(); + maxLLR = _mm512_set1_epi8((char)127); + ones = _mm512_set1_epi8((char)1); //Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); + M = (1*Z + 63)>>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z2_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { +static inline void nrLDPC_cnProc_BG1_R23_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M, i; + __m512i zmm0, min, sgn,zeros,maxLLR, ones; + zeros = _mm512_setzero_si512(); + maxLLR = _mm512_set1_epi8((char)127); + ones = _mm512_set1_epi8((char)1); //Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); + M = (1*Z + 63)>>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i>6; + for (i=0;i -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z2_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs +static inline void nrLDPC_cnProc_BG2_R13_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M; __m512i zmm0, min, sgn,zeros,maxLLR; zeros = _mm512_setzero_si512(); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } +//Process group with 3 BNs //Process group with 4 BNs - for (int i=0;i<1;i++) { + M = (8*Z + 63)>>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z104_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs +static inline void nrLDPC_cnProc_BG2_R15_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M; __m512i zmm0, min, sgn,zeros,maxLLR; zeros = _mm512_setzero_si512(); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<10;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); +//Process group with 3 BNs + M = (20*Z + 63)>>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i -#include #define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z3_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs +static inline void nrLDPC_cnProc_BG2_R23_AVX512(int8_t* cnProcBuf, int8_t* cnProcBufRes, uint16_t Z) { + uint32_t M; __m512i zmm0, min, sgn,zeros,maxLLR; zeros = _mm512_setzero_si512(); maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } +//Process group with 3 BNs //Process group with 4 BNs - for (int i=0;i<1;i++) { + M = (1*Z + 63)>>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i>6; + for (int i=0;i -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z104_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c deleted file mode 100644 index 931aabc9e6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z10_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z10_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c deleted file mode 100644 index 58776ecedc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z112_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z112_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c deleted file mode 100644 index f18f5526bd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z120_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z120_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c deleted file mode 100644 index a9aa7d52fc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z128_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z128_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c deleted file mode 100644 index 799c26e91e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z12_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z12_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c deleted file mode 100644 index 394b57a483..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z13_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z13_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c deleted file mode 100644 index 1ec0abd30e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z144_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z144_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c deleted file mode 100644 index 0bf5c532bc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z14_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z14_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c deleted file mode 100644 index 21cc303172..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z15_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z15_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c deleted file mode 100644 index ace2e27399..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z160_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z160_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c deleted file mode 100644 index 897bf3b12a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z16_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z16_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c deleted file mode 100644 index bafb9cd106..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z176_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z176_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c deleted file mode 100644 index dd4c008f1d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z18_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z18_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c deleted file mode 100644 index f9c4deca35..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z192_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z192_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c deleted file mode 100644 index 8dd282f1f6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z208_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z208_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<59;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<26;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c deleted file mode 100644 index 65ba354529..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z20_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z20_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c deleted file mode 100644 index 76e8d7916d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z224_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z224_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<63;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c deleted file mode 100644 index c619f1fa92..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z22_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z22_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c deleted file mode 100644 index 6f6334f753..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z240_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z240_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<68;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c deleted file mode 100644 index 94459877a7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z24_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z24_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c deleted file mode 100644 index 7f44b51d52..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z256_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z256_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<72;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c deleted file mode 100644 index 78403121b7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z26_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z26_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c deleted file mode 100644 index eb69908998..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z288_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z288_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<81;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c deleted file mode 100644 index 6d125fb6bc..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z28_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z28_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c deleted file mode 100644 index 2ff2574d9a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z30_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z30_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c deleted file mode 100644 index 19f323d1f8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z320_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z320_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c deleted file mode 100644 index aee2cc1b0e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z32_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z32_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c deleted file mode 100644 index 27d8374f1d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z352_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z352_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<99;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<44;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<22;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c deleted file mode 100644 index 2cbae94587..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z36_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z36_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c deleted file mode 100644 index be72a37443..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z384_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z384_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<108;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<48;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c deleted file mode 100644 index bcfba0de03..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z3_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z3_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c deleted file mode 100644 index 7e022c9691..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z40_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z40_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c deleted file mode 100644 index 11908574d7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z44_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z44_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c deleted file mode 100644 index dcf9d48363..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z48_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z48_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c deleted file mode 100644 index 4fee7d3af5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z4_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z4_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c deleted file mode 100644 index 5d0a8c9862..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z52_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z52_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c deleted file mode 100644 index 0c0a6bc09c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z56_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z56_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c deleted file mode 100644 index 0eaf965c08..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z5_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z5_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c deleted file mode 100644 index 0dfb581d3a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z60_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z60_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c deleted file mode 100644 index e4cfc593d2..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z64_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z64_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c deleted file mode 100644 index d1e3aea863..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z6_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z6_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c deleted file mode 100644 index 7b948004e8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z72_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z72_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c deleted file mode 100644 index 9685d28413..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z7_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z7_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c deleted file mode 100644 index cc13115c68..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z80_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z80_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c deleted file mode 100644 index 9010ccd0b8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z88_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z88_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c deleted file mode 100644 index 097b273aa6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z8_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z8_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c deleted file mode 100644 index 029b3cd7d5..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z96_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z96_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c deleted file mode 100644 index b8526c1fa0..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG1_Z9_R13_AVX512.c +++ /dev/null @@ -1,2261 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG1_Z9_R13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[12+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[6+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[7+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[6+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[12+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[13+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[18+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[48+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[78+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[18+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[48+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[78+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[138+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[246+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[354+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[570+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[462+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[138+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[246+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[354+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[462+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[570+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[678+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[726+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[774+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[822+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[918+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[870+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[678+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[726+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[774+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[822+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[870+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[918+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 7 BNs - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[996+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1056+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1116+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn= ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[996+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1056+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1116+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1176+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1188+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1200+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1212+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1224+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1236+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1260+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1248+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1176+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1188+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1200+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1212+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1224+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1232+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1248+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1260+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 9 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1272+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1284+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1296+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1308+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1320+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1332+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1344+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1368+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1356+i] = conditional_negate(min, sgn, zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1272+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1284+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1296+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1308+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1320+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1332+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1344+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1356+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1368+i] = conditional_negate(min, sgn, zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1380+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1386+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1392+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1398+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1404+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1410+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1416+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1422+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1434+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1428+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1380+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1386+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1392+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1398+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1404+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1410+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1416+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1422+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1428+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1434+i] = conditional_negate(min,sgn,zeros); - } -//Process group with 19 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1440+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1464+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1488+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1512+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1536+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1560+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1584+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1608+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1632+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1656+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1680+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1704+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1728+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1752+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1776+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1800+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1824+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1872+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1848+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1440+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1464+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1488+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1512+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1536+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1560+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1584+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1608+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1632+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1656+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1680+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1704+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1728+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1752+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1776+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1800+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1824+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1848+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1872+i] = conditional_negate(min, sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c deleted file mode 100644 index 13bfc07dc8..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z10_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z10_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c deleted file mode 100644 index 2bfea51617..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z112_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z112_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<11;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<35;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<35;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<35;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<35;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<16;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c deleted file mode 100644 index 47a9347527..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z11_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z11_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c deleted file mode 100644 index 8e081006db..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z120_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z120_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<38;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<38;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<38;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<38;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c deleted file mode 100644 index 212eeeb99a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z128_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z128_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<40;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c deleted file mode 100644 index 5cc9987065..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z12_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z12_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c deleted file mode 100644 index 1a768656bb..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z13_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z13_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c deleted file mode 100644 index 424d013afa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z144_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z144_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<14;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c deleted file mode 100644 index 7ac9608117..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z14_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z14_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c deleted file mode 100644 index 46784bdd5a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z15_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z15_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c deleted file mode 100644 index 4a456e452d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z160_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z160_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<15;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c deleted file mode 100644 index cafbcf0ec3..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z16_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z16_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c deleted file mode 100644 index c7e9c3b9e4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z176_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z176_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<17;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<55;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<55;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<55;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<55;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c deleted file mode 100644 index 7a70ae0856..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z18_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z18_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c deleted file mode 100644 index 772edee176..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z192_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z192_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<18;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<60;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<60;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<60;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<60;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c deleted file mode 100644 index 0d1d45a2da..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z208_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z208_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<20;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<65;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<65;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<65;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<65;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c deleted file mode 100644 index 808d1d557e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z20_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z20_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c deleted file mode 100644 index 5040a8055c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z224_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z224_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<21;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<21;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<70;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<70;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<70;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<70;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<32;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c deleted file mode 100644 index d6bc032b37..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z22_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z22_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c deleted file mode 100644 index b6aa90ffaa..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z240_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z240_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<23;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<75;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<75;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<75;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<75;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<34;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c deleted file mode 100644 index 200e410ddd..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z24_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z24_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c deleted file mode 100644 index baba4c6496..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z256_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z256_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<24;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<24;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<80;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<80;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<80;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<80;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c deleted file mode 100644 index 3f7f3e3ca1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z26_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z26_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c deleted file mode 100644 index be696e744c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z288_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z288_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<27;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<27;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<90;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<41;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c deleted file mode 100644 index fe487719cf..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z28_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z28_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c deleted file mode 100644 index aae2a813c7..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z30_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z30_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c deleted file mode 100644 index 2ba9f47ab9..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z320_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z320_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<30;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<100;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<100;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<100;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<100;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<45;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c deleted file mode 100644 index ecc660ddf6..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z32_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z32_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<10;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c deleted file mode 100644 index 7cb4a18389..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z352_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z352_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<33;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<33;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<33;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<110;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<110;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<110;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<110;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<50;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c deleted file mode 100644 index 33ab4c8a85..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z36_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z36_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c deleted file mode 100644 index 38a3c6deec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z384_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z384_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<36;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<36;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<120;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<120;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<120;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<120;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<54;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c deleted file mode 100644 index 9603e1669a..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z40_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z40_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c deleted file mode 100644 index f930d6ae14..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z44_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z44_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c deleted file mode 100644 index 541fd39183..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z48_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z48_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<15;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c deleted file mode 100644 index 1244fbb05c..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z4_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z4_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c deleted file mode 100644 index d974028049..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z52_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z52_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<17;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c deleted file mode 100644 index fe905cfdc4..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z56_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z56_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<18;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c deleted file mode 100644 index 627309b2ba..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z5_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z5_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c deleted file mode 100644 index 332175bebe..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z60_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z60_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<19;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c deleted file mode 100644 index d44251a81e..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z64_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z64_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<6;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<20;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c deleted file mode 100644 index 429dedff76..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z6_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z6_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c deleted file mode 100644 index af7bd6082d..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z72_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z72_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<7;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<7;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<23;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<11;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c deleted file mode 100644 index 9e060eef9b..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z7_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z7_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c deleted file mode 100644 index 9191e45570..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z80_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z80_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<8;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<8;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<25;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<12;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<4;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c deleted file mode 100644 index c8cd9df6af..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z88_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z88_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<28;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<13;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c deleted file mode 100644 index c8a4c790d1..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z8_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z8_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c deleted file mode 100644 index 1a2b478180..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z96_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z96_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<9;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<30;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<14;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<5;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -} diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c deleted file mode 100644 index b3e2eb87ec..0000000000 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/ldpc_gen_files/nrLDPC_cnProc_BG2_Z9_R15_AVX512.c +++ /dev/null @@ -1,785 +0,0 @@ -#include -#include -#define conditional_negate(a,b,z) _mm512_mask_sub_epi8(a,_mm512_movepi8_mask(b),z,a) -void nrLDPC_cnProc_BG2_Z9_R15_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { -//Process group with 3 BNs - __m512i zmm0, min, sgn,zeros,maxLLR; - zeros = _mm512_setzero_si512(); - maxLLR = _mm512_set1_epi8((char)127); - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[0+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[72+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[36+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[73+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[37+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i+=2) { - sgn = ((__m512i*)cnProcBuf)[0+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[36+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[72+i] = conditional_negate(min, sgn,zeros); - sgn = ((__m512i*)cnProcBuf)[1+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[37+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[73+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 4 BNs - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[108+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[228+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[468+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[348+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<3;i++) { - sgn = ((__m512i*)cnProcBuf)[108+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[228+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[348+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[468+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 5 BNs - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[588+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[642+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[696+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[804+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[750+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<2;i++) { - sgn = ((__m512i*)cnProcBuf)[588+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[642+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[696+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[750+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[804+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 6 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[858+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[876+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[894+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[912+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[948+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[930+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[858+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[876+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[894+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[912+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[930+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[948+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 8 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[966+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[978+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[990+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1002+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1014+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1026+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1050+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1038+i] = conditional_negate(min, sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[966+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[978+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[990+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1002+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1014+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1026+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1038+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1050+i] = conditional_negate(min, sgn,zeros); - } -//Process group with 10 BNs - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1062+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1074+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1086+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1098+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1110+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1122+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1134+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1146+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1170+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1158+i] = conditional_negate(min,sgn,zeros); - } - for (int i=0;i<1;i++) { - sgn = ((__m512i*)cnProcBuf)[1062+i]; - min = _mm512_abs_epi8(sgn); - zmm0 = ((__m512i*)cnProcBuf)[1074+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1086+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1098+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1110+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1122+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1134+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1146+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - zmm0 = ((__m512i*)cnProcBuf)[1158+i]; - min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); - sgn = _mm512_xor_si512(sgn, zmm0); - min = _mm512_min_epu8(min, maxLLR); - ((__m512i*)cnProcBufRes)[1170+i] = conditional_negate(min,sgn,zeros); - } -}